첫 번째 열 값을 기준으로 하나의 파일을 여러 파일로 분할합니다.

첫 번째 열 값을 기준으로 하나의 파일을 여러 파일로 분할합니다.

패턴 일치와 줄 일치를 사용하여 파일을 분할하는 방법을 본 적이 있지만 내가 원하는 것은 다음과 같습니다. 시나리오는 다음과 같습니다. 파일이 있다고 가정해 보겠습니다 file1 .

A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
B.Y|1|1

이제 이 파일을 첫 번째 열을 기반으로 3개의 다른 파일로 분할하고 싶습니다. 여기서 첫 번째 파일은 A.B첫 번째 열에 포함된 모든 행이 되고, 두 번째 파일은 모든 행을 포함해야 합니다 A.X.

첫 번째 열이 변경되면그래도, 이 줄에 대해 새 파일을 만들어야 합니다. bash 또는 를 사용하여 이를 수행할 수 있는 방법이 있습니까 awk?

첫 번째 열의 값이 어떻게 될지 실제로 미리 알 수 있는 방법이 없기 때문에 splitor 같은 것을 사용할 수 없습니다 cut. 귀하의 도움에 미리 감사의 말씀을 전하고 싶습니다!

답변1

노력하다:

awk -F\| '{print>$1}' file1

그러면 첫 번째 열의 이름을 딴 파일에 각 행이 기록됩니다.

작동 방식:

  • -F\|필드 구분 기호를 로 설정합니다 |.

  • print>$1현재 행을 first field라는 파일에 인쇄합니다.

관련 정보