在另一个文件中搜索多个字符串(来自文件)并列出缺少的字符串

时间:2015-09-23 21:51:59

标签: string bash file search

我有一个包含200个学生姓名的文件。另一个包含200名学生数据的大文件。我想确保没有错过任何学生姓名。我正在寻找一个脚本来查看来自students.txt的字符串,然后在alldata.txt中搜索它。如果缺少,请列出

我尝试使用

=if(INDIRECT("R[0]C[2]",FALSE)="B",1,0)

但它列出了所有的匹配和未命中,以提供它在alldata.txt中找不到的字符串列表

2 个答案:

答案 0 :(得分:0)

假设学生姓名位于comm -23 <(sort students.txt) <(awk '{print $1}' alldata.txt | sort -u) 的第一个字段中:

comm -23

<system.webServer> <security> <authorization> <remove users="?" roles="" verbs="" /> <allow users="*" /> </authorization> </security> </system.webServer> 打印第一个文件中但不在第二个文件中的所有行。这使用进程替换将两个命令的输出视为文件。

答案 1 :(得分:0)

如果您只是搜索一个文件,则不需要find。但是,如果您的数据文件是非结构化文本并且名称可以出现在任何地方,您可能需要一次查找一个:

while read name; do
  fgrep -q $name alldata.txt || echo $name
done < students.txt