嗨,我有一个文件,条目如下:
$ cat output.csv
ajhn001
sudo --- yes
ppp --- yes
samba_common --- no
Spectre_Meltdown --- yes
ajhg002
sudo --- yes
ppp --- yes
samba_common --- no
Spectre_Meltdown --- no
我需要用这种格式:
Server Sudo PPP Sambacry Specter_Meltdown
ajhn001 yes yes no yes
ajhg002 yes yes no no
但我的脚本正在打印以下内容:
$ sh format_csv.sh
Server Sudo PPP Sambacry Specter_Meltdown
ajhn001
sudo yes
ppp yes
samba_common no
Spectre_Meltdown yes
ajhn002
sudo yes
ppp yes
samba_common no
Spectre_Meltdown no
这是我的脚本
#!/bin/bash
fmt="%-20s%-12s%-12s%-19s%-12sn"
printf "$fmt" Server Sudo PPP Sambacry Specter_Meltdown
while read line
do
#echo $line
#echo aw
read line1 line2 line3 line4 <<< "$line"
printf "$fmt" "$line1" "$line3"
done < output.csv | column -t
有更好的方法吗?,提前谢谢。
#!/bin/bash
fmt="%-20s%-12s%-12s%-19s%-12sn"
printf "$fmt" Server Sudo PPP Sambacry Specter_Meltdown
awk 'NF == 1 { i=1; a[i]=$1 };
NF == 3 { i++; a[i] = $3; if (i==5) {printf "'$fmt'",a[1],a[2],a[3],a[4],a[5]} };
' output.csv
打印:
Server Sudo PPP Sambacry Specter_Meltdown
ajhn001 yes yes no yes
ajhg002 yes yes no no