한 파일의 행이 일치하면 두 파일 모두에서 N행을 삭제합니다.

한 파일의 행이 일치하면 두 파일 모두에서 N행을 삭제합니다.

file1파일 이 두 개 있는데 file2... 둘 다 엑스레이가 있어요. 의 일부 줄이 file2비어 있습니다( 와 일치함 ^$). 행 I이 비어 있으면 file2두 파일 모두에서 행 I을 제거하고 싶습니다 . 예:

File1:

ad
dada

da
dad


a

File2:

dada


da
dada
dada
da
(empty line)

결과 file1:

ad
da
dad


(empty line)

결과 file2:

Dada
da
dada
dada
da

답변1

사용할 수 있다줄을 서다이 경우:

$ awk '{ getline ln < "File1"; if(!/^$/){print ln > "tmp1"; print > "tmp2"} }' File2
$ cat tmp1
ad
da
dad


$ cat tmp2
dada
da
dada
dada
da

그런 다음 mv필요에 따라 내부 편집을 위해 파일을 출력합니다.

관련 정보