>

다음과 같이 데이터 세트가 있습니다 :

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

이것은 내가 갖고 싶은 예제 출력입니다 :

data1 :

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
    
    

  • 이전 bash - 스크립트가 여러 함수를 호출하는 이유는 무엇입니까?
  • 다음 shell script - 지정된 범위의 파일 크기에 대한 파일 및 디렉토리 트리 복사