패턴 일치와 줄 일치를 사용하여 파일을 분할하는 방법을 본 적이 있지만 내가 원하는 것은 다음과 같습니다. 시나리오는 다음과 같습니다. 파일이 있다고 가정해 보겠습니다 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
?
첫 번째 열의 값이 어떻게 될지 실제로 미리 알 수 있는 방법이 없기 때문에 split
or 같은 것을 사용할 수 없습니다 cut
. 귀하의 도움에 미리 감사의 말씀을 전하고 싶습니다!
답변1
노력하다:
awk -F\| '{print>$1}' file1
그러면 첫 번째 열의 이름을 딴 파일에 각 행이 기록됩니다.
작동 방식:
-F\|
필드 구분 기호를 로 설정합니다|
.print>$1
현재 행을 first field라는 파일에 인쇄합니다.