다음과 같은 텍스트 파일이 있습니다.
입력파일 1.txt
.......................
cha21 1 3 5 nar
cha21 2 3 6 piy
cha23 2 3 5 ram
cha23 3 3 3 dam
cha27 5 3 7 pam
................................
"cha21", "cha23" 및 "cha27" 행에 해당하는 5개 열을 모두 3개의 다른 출력 파일(예: cha21.txt, cha23.txt, cha27.txt)로 추출하고 싶습니다.
결과물 파일
cha21.txt
..........
cha21 1 3 5 nar
cha21 2 3 6 piy
......................
cha23.txt
cha23 2 3 5 ram
cha23 3 3 3 dam
...................................
cha27.txt
cha27 5 3 7 pam
...........................
3개의 파일에 대해 grep 명령으로 이 작업을 3번 수행할 수 있습니다... 어쨌든 100개의 출력 파일을 추출해야 하기 때문에 한 번에 모두 수행할 수 있습니다. 즉, 하나의 명령으로 수행할 수 있습니다.
답변1
나는 노력할 것이다
awk '{print >> $1 ".txt" ;}'
어디
print
전체 줄을 인쇄합니다.>> $1 ."txt"
이 줄을 $1로 표시된 파일에 쓰고(추가).txt
추가합니다.
편집하다:
줄, 점이 있는 줄 등을 주석 처리한 경우
노력하다
awk '$1 ~ /cha/ {print >> $1 ".txt" ;}'
"cha"로 시작하는 파일만 채워집니다.
답변2
그것은 간단합니다 awk
:
awk '{print $0 >> $1".txt"}' file1.txt