1つのファイルの行が一致すると、両方のファイルからN行が削除されます。

1つのファイルの行が一致すると、両方のファイルからN行が削除されます。

file12つのファイルがありますfile2...両方ともX線があります。の一部の行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必要に応じて内部編集用にファイルを出力します。

関連情報