여러 문서의 특정 줄을 비교하고 싶습니다. diff와 comm을 사용해 보았지만 조건은 이렇습니다.
문서는 다른 작업 디렉터리/폴더에 있으며 여기에서는 (*.doc)와 같은 와일드카드를 사용할 수 있습니다.
File 1 ---> /home/user/file1/1.doc File 2 ---> /home/user/file2/2.doc File 3 ---> /home/user/file3/3.doc
다음은 모든 문서(*.doc)의 특정 라인(2~3라인)을 비교하는 것입니다.
예를 들어 다음 문서의 2행(연령)과 3행(성별)을 가져오고 싶습니다.
1.문서
Name: abc
Age: 123
Gender: m
Contact No.: 222 2222
2.문서
Name: bca
Age: 321
Gender: F
Contact No.: 333 3333
3.문서
Name: bca
Age: 321
Gender: F
Contact No.: 333 3333
- 마지막으로 이 줄이 동일하든 다르든 다른 파일로 생성하는 것입니다.
답변1
귀하의 질문에서 제가 이해한 바에 따르면 각 파일에서 2행과 3행만 가져와 새 파일로 출력하기를 원합니다. 이 작업을 수행하는 스크립트는 다음과 같습니다.
find . -name "*.doc" | xargs awk 'FNR==2||FNR==3{print}' > new_file
xargs
awk
출력의 각 파일이 처리 됩니다 find
. awk
2행과 3행은 제공된 각 새 파일에서 인쇄됩니다.
경로에 공백이 있을 수 있는 경우:
find . -name "*.doc" -print0 | xargs -0 awk 'FNR==2||FNR==3{print}' > new_file