AWK は、ファイルの残りの列を埋めるために使用されます。

AWK は、ファイルの残りの列を埋めるために使用されます。

次のテキストファイルの「空白」列を埋めるようにAWKを取得しようとしています。

AWK NF を使用して最長行を見つけ、その列に値がない行を確認する基本的なアイデアです。次に、各空の列にx回N / Aを追加します。

この例にはスペースで区切られた入力がありますが、文字で区切られたファイルに簡単に変更できます。

入力は次のとおりです。

aaa bbb ccc ddd
aaa 
aaa bbb ccc
hhh ppp uuu
www yyy hhh
hhh 111 333 yyy ooo hyy uuuioooy 

そして、出力はファイルの最大列数を計算し、空の列にN / Aを追加します。

aaa bbb ccc ddd N/A N/A N/A
aaa N/A N/A N/A N/A N/A N/A
aaa bbb ccc N/A N/A N/A N/A
hhh ppp uuu N/A N/A N/A N/A 
www yyy hhh N/A N/A N/A N/A 
hhh 111 333 yyy ooo hyy uuuioooy 

ベストアンサー1

最も簡単な方法は、2つのステップで行うことです。まず、最も広い線を探します。

max=$(awk 'max < NF { max = NF } END { print max }' infile)

次に、別の列を埋めるときにそれを入力として使用します。

awk -v max=$max '{ for(i=NF+1; i<=max; i++) $i = "N/A"; print }' infile

おすすめ記事