BIG EDIT for a better understanding: is there a possibility in bash to put my output (lines) to columns in csv files (regarding the following challenge).
my script:
#!/bin/bash
## get ports, status, vlan
devices=`ls *.txt`
for device in $devices
do
output=`echo $device | awk -F"." {'print $1'}`
echo "Port;Status;VLAN\r" > $output".csv"
port=`cat $device | awk 'BEGIN {OFS=";"}; /Fa[0-9]|Gi[0-9]|Te[0-9]/ && /disabled|connected/ {print $1}'`
stat=`cat $device | awk 'BEGIN {OFS=";"}; /Fa[0-9]|Gi[0-9]|Te[0-9]/ && /disabled|connected/ {print $0}' | awk 'match($0,"connected|disabled.*"){print substr($0,RSTART)}' | awk '{print $1}'`
vlan=`cat $device | awk 'BEGIN {OFS=";"}; /Fa[0-9]|Gi[0-9]|Te[0-9]/ && /disabled|connected/ {print $0}' | awk 'match($0,"connected|disabled.*"){print substr($0,RSTART)}' | awk '{print $2}'`
var=$(paste -d, <(echo "$port") <(echo "$stat") <(echo "$vlan"))
echo "$var" >> output."csv"
done
.
<input-file.txt>
Port Name Status Vlan Duplex Speed Type
Fa0/1 disabled 1 auto auto 10/100BaseTX
Fa0/2 disabled 1 auto auto 10/100BaseTX
Fa0/3 disabled 1 auto auto 10/100BaseTX
Fa0/4 disabled 1 auto auto 10/100BaseTX
Fa0/5 disabled 1 auto auto 10/100BaseTX
Fa0/6 disabled 1 auto auto 10/100BaseTX
Fa0/7 disabled 1 auto auto 10/100BaseTX
Fa0/8 disabled 1 auto auto 10/100BaseTX
Fa0/9 disabled 1 auto auto 10/100BaseTX
Fa0/10 xxxx-xxx-xxx 0004. connected 3 full 100 10/100BaseTX
Fa0/11 xxxx-xxx-xxx bge0 connected 3 a-full a-100 10/100BaseTX
Fa0/12 xxxx-xxx-xxx iLO connected 2 a-full a-100 10/100BaseTX
Fa0/13 xxxx-xxx-xxx bge0 connected 2 a-full a-100 10/100BaseTX
Fa0/14 disabled 1 auto auto 10/100BaseTX
Fa0/15 xxxx-xxx-vpn bge0 connected 4 a-full a-100 10/100BaseTX
Fa0/16 xxxx-xxx-vpn ilO connected 2 a-full a-100 10/100BaseTX
Fa0/17 xxxx-xxx xx.xx.xx. connected 2 a-full a-100 10/100BaseTX
Fa0/18 xxxxxx-xxx1 connected 2 a-full a-100 10/100BaseTX
Fa0/19 disabled 1 auto auto 10/100BaseTX
Fa0/20 disabled 1 auto auto 10/100BaseTX
Fa0/21 xxxxx-xxxxx disabled 1 auto auto 10/100BaseTX
Fa0/22 xxxxxx-xxx disabled 1 auto auto 10/100BaseTX
Fa0/23 xxxx-xxx disabled 2 auto auto 10/100BaseTX
Fa0/24 xxxxxx-xxxx disabled 1 auto auto 10/100BaseTX
Fa0/25 disabled 1 auto auto 10/100BaseTX
Fa0/26 disabled 1 auto auto 10/100BaseTX
Fa0/27 disabled 1 auto auto 10/100BaseTX
Fa0/28 disabled 1 auto auto 10/100BaseTX
Fa0/29 disabled 1 auto auto 10/100BaseTX
Fa0/30 disabled 1 auto auto 10/100BaseTX
Fa0/31 disabled 1 auto auto 10/100BaseTX
Fa0/32 disabled 1 auto auto 10/100BaseTX
Fa0/33 disabled 1 auto auto 10/100BaseTX
Fa0/34 disabled 1 auto auto 10/100BaseTX
Fa0/35 disabled 1 auto auto 10/100BaseTX
Fa0/36 disabled 1 auto auto 10/100BaseTX
Fa0/37 disabled 1 auto auto 10/100BaseTX
Fa0/38 disabled 1 auto auto 10/100BaseTX
Fa0/39 disabled 1 auto auto 10/100BaseTX
Fa0/40 disabled 1 auto auto 10/100BaseTX
Fa0/41 disabled 1 auto auto 10/100BaseTX
Fa0/42 disabled 1 auto auto 10/100BaseTX
Fa0/43 disabled 1 auto auto 10/100BaseTX
Fa0/44 disabled 1 auto auto 10/100BaseTX
Fa0/45 disabled 1 auto auto 10/100BaseTX
Fa0/46 disabled 1 auto auto 10/100BaseTX
Fa0/47 disabled 1 auto auto 10/100BaseTX
Fa0/48 disabled 1 auto auto 10/100BaseTX
Gi0/1 Xxxxxxxx Xxxxx xx connected trunk a-full a-1000 10/100/1000BaseTX SFP
Gi0/2 Xxxxx xxxxxxx Xxx connected trunk a-full a-1000 1000BaseSX SFP
Gi0/3 disabled 1 auto auto Not Present
Gi0/4 disabled 1 auto auto Not Present
result of script output should be:
<output.csv>
| Port | Status | VLAN |
| Fa0/1 | disabled | 1 |
| Fa0/2 | disabled | 1 |
| Fa0/3 | disabled | 1 |
| Fa0/4 | disabled | 1 |
| Fa0/5 | disabled | 1 |
| Fa0/6 | disabled | 1 |
| Fa0/7 | disabled | 1 |
| Fa0/8 | disabled | 1 |
| Fa0/9 | disabled | 1 |
| Fa0/10 | connected | 3 |
and so on
Issue: after trying the "paste" command (thanks guys) .. i'm getting the following error: Syntax error: "(" unexpected
.txtfiles in the question.