Gawkに違う場合

Gawkに違う場合

例があります。

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 ""}'

おすすめ記事