2番目の列では、名前付きファイルに最初の列を保存します。

2番目の列では、名前付きファイルに最初の列を保存します。

315行と2列のファイルがあります。次のように、最初の列は個人であり、2番目の列はグループIDです。

HT170_SD2W-14   HA_16
Q093_MK7-13 HA_25
Q87_MK3-2   HA_21
HT225_KS2A-23R  HA_7
HT256_KS2A-4    HA_7
HT216_SD2A-32   HA_15
ED19_SD1A40-3_357   HA_13

HA_7に関する同様の情報を得るために、各グループに属する個人を抽出し、別々のファイルに保存したいと思います。

HT225_KS2A-23R
HT256_KS2A-4

どうすればいいですか?

ベストアンサー1

$ awk '{ f = "pop-" $2 ".txt" ; print $1 >f }' file

与えられた入力に対して次のファイルが生成されます。

$ ls -l pop-*.txt
-rw-r--r--  1 kk  wheel  18 Sep 28 18:47 pop-HA_13.txt
-rw-r--r--  1 kk  wheel  14 Sep 28 18:47 pop-HA_15.txt
-rw-r--r--  1 kk  wheel  14 Sep 28 18:47 pop-HA_16.txt
-rw-r--r--  1 kk  wheel  10 Sep 28 18:47 pop-HA_21.txt
-rw-r--r--  1 kk  wheel  12 Sep 28 18:47 pop-HA_25.txt
-rw-r--r--  1 kk  wheel  28 Sep 28 18:47 pop-HA_7.txt

$ cat pop-HA_7.txt
HT225_KS2A-23R
HT256_KS2A-4

プログラムawkは2番目のフィールドを選択し、その前後に適切なファイル名ビットを追加して出力ファイル名を生成します。次に、最初のフィールドをそのファイルに出力します。

おすすめ記事