두 번째 열에서 이름이 지정된 파일에 첫 번째 열을 저장합니다.

두 번째 열에서 이름이 지정된 파일에 첫 번째 열을 저장합니다.

315개의 행과 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은 두 번째 필드를 선택하고 그 앞과 뒤에 적절한 파일 이름 비트를 추가하여 출력 파일 이름을 생성합니다. 그런 다음 첫 번째 필드를 해당 파일에 출력합니다.

관련 정보