다음과 같은 데이터 세트가 있습니다.
Cow_ID Age DIM
1 1424 0
1 1425 1
1 1426 2
1 1427 3
2 1428 4
2 1429 5
2 1430 6
2 1431 7
3 1432 8
3 1433 9
3 1434 10
3 1435 11
3 1436 12
4 1437 13
4 1438 14
4 1439 15
저는 awk를 사용하여 Cow_ID를 기반으로 이 데이터의 하위 집합을 만들고 이를 파일에 쓰고 싶습니다. 특히, 각 파일에는 대규모 데이터 세트에 표시된 것처럼 헤더도 포함되어 있습니다. 지금 이것을 사용하고 있지만 작동하지 않습니다.
awk 'Cow_ID=1 {print}' > data1.txt
내가 원하는 샘플 출력은 다음과 같습니다.
데이터 1:
Cow_ID Age DIM
1 1424 0
1 1425 1
1 1426 2
1 1427 3
데이터 2:
Cow_ID Age DIM
2 1428 4
2 1429 5
2 1430 6
2 1431 7
등.
답변1
이는 귀하의 요구 사항을 충족하는 것 같습니다. NR(레코드 번호)이 1인 행을 표시합니다. 이는 머리글 행과 첫 번째 필드가 "1"인 모든 행을 합한 것입니다.
awk 'NR == 1 || $1 == "1"' file.txt
Cow_ID Age DIM
1 1424 0
1 1425 1
1 1426 2
1 1427 3
awk 'NR == 1 || $1 == "2"' file.txt
Cow_ID Age DIM
2 1428 4
2 1429 5
2 1430 6
2 1431 7