AWKを使用して列を追加する方法

AWKを使用して列を追加する方法

次のファイルスキーマがあります。

insert_buffer cell_a 
insert_buffer cell_b
insert_buffer cell_b
...

各行の最後に列を追加して数字を増やしたいです。たとえば、0,1,2,3...:

insert_buffer cell_a name_0
insert_buffer cell_b name_1
insert_buffer cell_b name_2
...

ループにawkを使用する方法は?あるいは、他の解決策も可能です。

ベストアンサー1

$ awk '{$(NF+1) = "name_"(NR-1)} 1' file
insert_buffer cell_a name_0
insert_buffer cell_b name_1
insert_buffer cell_b name_2

組み込みレコード count の代わりに独自の変数を使用するには、NR次のようにします。

$ awk '{$(NF+1) = "name_"i++} 1' file
insert_buffer cell_a name_0
insert_buffer cell_b name_1
insert_buffer cell_b name_2

新しいフィールドを別の場所に挿入する場合は、追加の出力フィールド区切り文字を使用して既存のフィールドの前に追加するか、2番目のフィールドOFSの前に挿入する方法があります。

$ awk '{$2 = "name_"i++ OFS $2 } 1' file
insert_buffer name_0 cell_a
insert_buffer name_1 cell_b
insert_buffer name_2 cell_b

おすすめ記事