如何向awk输出添加标题?
我有一个如下所示的 csv 文件
"10.8.70.67","wireless",,"UTY_07_ISD",,26579
"10.8.70.69","wireless",,"RGB_34_FTR",,19780
我想检索第一、第二和第四列值(不带引号)并以下面的格式填充到另一个 csv 中。
IP DEVICETYPE DEVICENAME
10.8.70.67 wireless UTY_07_ISD
10.8.70.69 wireless RGB_34_FTR
我使用了下面的 awk 命令
awk -F ',|,,' '{gsub(/"/,"",$1); gsub(/"/,"",$2); gsub(/"/,"",$3); print $1, $2, $3}' file.csv
并得到以下输出
10.8.70.67 wireless UTY_07_ISD
10.8.70.69 wireless RGB_34_FTR
请帮助为每列分配标题。
回答
假设您在引用的字符串中没有逗号或双引号(一个很大的假设!)它可以很简单
$ awk -F, 'NR==1 {print "IP","DEVICETYPE","DEVICENAME"}
{gsub(/"/,"");
print $1,$2,$4}' file | column -t
IP DEVICETYPE DEVICENAME
10.8.70.67 wireless UTY_07_ISD
10.8.70.69 wireless RGB_34_FTR