如何向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


以上是如何向awk输出添加标题?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>