如果一个文件中的行匹配,则从两个文件中删除第 N 行

如果一个文件中的行匹配,则从两个文件中删除第 N 行

我有两个文件,file1并且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根据需要输出文件进行就地编辑

相关内容