linux - grep -v with while read line 命令无法正常工作

标签 linux while-loop grep command

我使用这个命令

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

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


这是 (target.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,但问题仍然存在,它没有正确删除行。

最佳答案

grep -vf removefrom.txt 目标.txt

关于linux - grep -v with while read line 命令无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51978191/

相关文章:

r - 如何使用 while 循环绑定(bind)多个数据帧?

javascript - i 没有在 while 循环中定义

regex - Grep 仅在空格后的第二部分

ruby - 在 ruby​​ 中提取文档中的主题标签和部分

c - bash 管道中的 u3-tool 不起作用 | C中的段错误

c - 使用 C 在字节数组中实时显示 .jpeg

python - Stty 疯狂地使用 Python 子进程

linux - 在 Raspberry Pi 上部署

java - for while if 循环嵌套错误消息,如果没有找到

linux - 如何使用 cut 和 grep 在 unix 中打印一系列字符?