此代码按预期工作。
grep myhost hosts.csv |
awk -F, '{if ($8 != "") print $8; else if ($7 != "") print $7; else if ($7 == "" && $8 == "") print $0}'
我知道有100种皮肤猫的方法。但我只是想知道这是否是最有效的方法。
答案 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