示例命令:
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 -v FPAT='([^,]*)|("[^"]+")' ' ##设置FPAT只得到匹配的字段仅为([^,]*)|("[^"]+")
BEGIN{ ##从这里开始这个程序的BEGIN部分。
print "IP DEVICETYPE DEVICENAME" ##输出标题header
}
function remove(fields){ ##在这里创建名为remove的函数,从需要删除的地方传递字段编号
num=split(fields,arr,",") ##在这里将字段拆分为arr.
for(i=1;i<=num;i++){ ##遍历arr的所有项。
gsub(/^"|"$/,"",$arr[i]) ##在这里用NULL全局替换提到的字段中的starting和ending。
}
}
{
remove("1,2,4") ##在这里调用remove,其中字段编号为1、2和4,这是需要的每个输出。
print $1,$2,$4 ##在这里打印第1、2和4个字段。
}
' Input_file ##输出的文件名