输入示例:
1:2:3:0:5
1:2:3::5
awk处理:
$ echo -e "1:2:3:0:5\n1:2:3::5"|awk -F: '{if($4!="") print NR,$4; else print NR,"-"}'
1 0
2 -
问题:上面可以用简短的 if 表示法运行吗?我尝试了类似的方法,但它不会返回如上所述的输出。
$ echo -e "1:2:3:0:5\n1:2:3::5"|awk -F: '{print NR,($4 ? $4 : "-")}'
1 -
2 -
答案1
0
被评估为false
并按条件$4 ? $4 : "-"
达到"-"
。要检查第四个字段是否为空,应指定
条件。$4 != ""
awk -F':' '{ print NR, ($4 != ""? $4 : "-") }' file