首页 > 解决方案 > grep -v with while read line 命令无法正常工作

问题描述

我使用这个命令

while read line || [ -n "$line" ]; do grep -v "$line" target.txt > tmp; mv tmp target.txt; done < removefrom.txt

从 ( target.txt ) 中删除与 ( removefrom.txt )中的字符串匹配的行


这是(目标.txt)

e
1
k
2
a

这是 (removefrom.txt)

d
e
c
a
k
b
e
a

结果应该如下所示:

1
2

但有时结果是这样的:

e
1
2

或者

e
1
2
a

或者

1
2
a

我曾经尝试使用sed,但问题仍然存在,它没有正确删除行。

标签: linuxwhile-loopgrepcommand

解决方案


grep -vf removefrom.txt target.txt


推荐阅读