嗨,我有一个文件,条目如下:
$ 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%-12s\n"
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还有更好的方法吗?提前谢谢。
发布于 2020-07-15 10:34:12
#!/bin/bash
fmt="%-20s%-12s%-12s%-19s%-12s\n"
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 nohttps://stackoverflow.com/questions/62905894
复制相似问题