例があります。
echo $(seq 9) | awk '{for(i=1;i<=NF;i++) if(i!=5&&i!=6) {printf "%s ",i}else{printf "%s ",""} print ""}'
1 2 3 4 7 8 9
このコマンドに省略形を使用できますか?
echo $(seq 9)| awk '{for(i=1;i<=NF;i++) (i!=5&&i!=6) ? {printf "%s ",i} : {printf "%s ",""} print ""}'
説明してくれてありがとう。
答え1
可能ですが、そうではありません。三項演算子に式を提供する必要があります。 AWKではprintf
ステートメントなので、使用できないかのようにそこでも使用できません{}
。
とにかく2つのステートメントは必要ないので、printf
次のように書くことをお勧めします。
seq -s ' ' 9 | awk '{for(i=1;i<=NF;i++) printf "%s ", i!=5&&i!=6 ? i : ""; print ""}'