如何从文本文件中读取字符串并在grep中使用它们?

我有一个字符串文件,需要在另一个文件中搜索。所以我尝试了以下代码:

#!/bin/bash

while read name; do
   #echo $name
   grep "$name" file.txt > results.txt
done < missing.txt

echo 行确认文件正在被读入变量,但我的结果文件始终为空。在自己的作品上执行 grep 命令,我显然在这里遗漏了一些非常基本的东西,但我已经被卡住了一段时间,无法弄清楚。

我也试过在变量周围不加引号。有人可以告诉我我错过了什么吗?谢谢一堆

编辑 - 输入文件为 DOS 格式,将文件格式设置为 unix 并且现在工作正常

回答

使用grep 的-f选项:那么你只需要一个 grep 调用并且不需要循环。

grep -f missing.txt file.txt > results.txt

如果“missing.txt”的内容是固定字符串,而不是正则表达式,这将加快进程:

grep -F -f missing.txt file.txt > results.txt

如果你想在另一个文件中找到missing.txt的,而不是部分

grep -F -w -f missing.txt file.txt > results.txt


以上是如何从文本文件中读取字符串并在grep中使用它们?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>