Linux 逐行读入文件,并在另一个文件中搜索部分匹配的行
我有一个与另一个文件中的行部分匹配的文件。为了做到这一点,我希望生成一个带有read的while循环,并将每行部分匹配的变量替换为grep命令,以搜索具有部分匹配的数据库文件,但由于某些原因,我没有得到输出(一个空的outputfile.txt) 这是我目前的剧本Linux 逐行读入文件,并在另一个文件中搜索部分匹配的行,linux,bash,while-loop,grep,Linux,Bash,While Loop,Grep,我有一个与另一个文件中的行部分匹配的文件。为了做到这一点,我希望生成一个带有read的while循环,并将每行部分匹配的变量替换为grep命令,以搜索具有部分匹配的数据库文件,但由于某些原因,我没有得到输出(一个空的outputfile.txt) 这是我目前的剧本 while read -r line; do grep $line /path/to/databasefile >> /path/to/folder/outputfile.txt done < "/parti
while read -r line; do
grep $line /path/to/databasefile >> /path/to/folder/outputfile.txt
done < "/partial_matches.txt"
部分匹配的搜索文件有几行文本:
ab
ac
我正在寻找回报:
>transcript_ab
>transcript_ac
任何帮助都将不胜感激。谢谢。您可以改用for循环:
for i in $(cat partial_matches.txt); do
grep $i /path/to/databasefile >> /path/to/folder/outputfile.txt
done
此外,请检查您是否有打字错误:
“/partial\u matches.txt”
->“/partial\u matches.txt”
如果您使用的是GNUgrep
,那么它的-f
选项就是您要寻找的:
grep -f /partial_matches.txt /path/to/databasefile
(如果partial_matches.txt中没有任何模式,但只有字符串,那么使用
grep-F
而不是grep
)那么/outputfile.txt
是空的吗?(顺便问一下,你是如何写入/
?你是以root身份运行的吗?)@RobinGreen是的outputfile.txt是空的,我只是没有包括文件的路径,然而,我在问题中编辑并澄清了您是否有权限写入该文件?@RobinGreen是的,在我的用户目录中并不一定意味着您有权限写入该文件。请查收。
grep -f /partial_matches.txt /path/to/databasefile