如果 - 最佳实践,请问其他问题

时间:2016-06-08 20:00:42

标签: shell awk scripting

此代码按预期工作。

grep myhost hosts.csv |
awk -F, '{if ($8 != "") print $8; else if ($7 != "") print $7; else if ($7 == "" && $8 == "") print $0}'

我知道有100种皮肤猫的方法。但我只是想知道这是否是最有效的方法。

2 个答案:

答案 0 :(得分:3)

好的,你能试试吗?:

awk -F, '/myhost/{print ($8!=""?$8:($7!=""?$7:$0))}'

OR

awk -F, '!/myhost/{next} $8!=""{print $8;next} $7!=""{print $7;next} 1'

答案 1 :(得分:1)

FWIW我只是简单地写一下:

awk -F, '/myhost/ {if ($8 != "") $0=$8; else if ($7 != "") $0=$7; print}' hosts.csv