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