小编ila*_*ngl的帖子

grep 循环:我使用一个文件的每一行作为查询来查找与另一个文件匹配的内容。为什么我的输出不一致?

我有一个query_ids包含多行的文件,例如:

id1
id2
id3
Run Code Online (Sandbox Code Playgroud)

我用来grep idx在 中查找 id 的匹配项my_file
我将这些匹配重定向到一个新matches文件。
我还使用grepwith 选项-v来获取重定向到mismatches文件的所有不匹配项。我正在使用这个小脚本:

#!/bin/bash


for i in $(cat query_ids)
do 
    # saving matches 
    grep "$i" my_file >> matches
    # saving mismatches
    grep -v "$i" my_file >> missing
done

Run Code Online (Sandbox Code Playgroud)

我显然做错了什么:当从文件中
手动搜索一些 id 时,我发现它们存在。 即使该文件应该只包含未在 I 中找到的文件中的 id,但我确实找到了匹配项。missingmy_file
missingquery_idsmy_file

因此,当选择一些随机 id 时,让我们说 id3 通过执行grep id3 missing并且grep id3 my_file都返回匹配项。<br>

为什么我的代码将 id3 分配给 …

grep for

1
推荐指数
1
解决办法
2031
查看次数

标签 统计

for ×1

grep ×1