n行目ごとに新しい列に値を貼り付ける

n行目ごとに新しい列に値を貼り付ける

次のようなfile.txtがあります。

1
2
3
4
5
6

awkコマンドを使用して新しい列に値(Apple)を追加するには、次の手順を実行できます。

awk -v RS='\r\n' 'BEGIN { OFS = " " } {print $0, "Apple"}' file.txt > file_new.txt

これにより、以下が提供されます。

1 Apple
2 Apple
3 Apple
4 Apple
5 Apple
6 Apple

それでは、次のような出力が欲しいとしましょう。

1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana

awkコマンドを修正する方法は?

ベストアンサー1

ファイルは次のようになります。

1
2
3
4
5
6

あなたはそれを使用することができます:

awk  'BEGIN { OFS = " "; a["1"]="Apple";a["2"]="Orange";a["3"]="Banana"; } {print $0,a[int(NR/2 + NR%2)]}' file

あなたは得るでしょう:

1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana

おすすめ記事