linux - 搜索包含在 file1 中但在 file2 中找不到的字符串

标签 linux string search grep findstr

我正在尝试运行搜索命令以从文件 1 中查找字符串并在文件 2 中找到它们。然后我只想打印 file1 中未在 file2 中找到的字符串。

File1 是这样的:

 read
 write
 access

文件 2 将是:

0xFF88 T write
0xFF87 t xyzwrite
0xFF86 T read
0xFF85 T xyzread
0xFF84 T xyzaccess

所以期望的结果是:

 access

*** 请注意,我确实在 File1 中的所有字符串中添加了一个空格,以便不包括属于另一个字符串的一部分的每个字符串。

我试过:

grep -vf file1 file2 

并从 file2 中获取除写入和读取行以外的所有结果,包括地址。

我试过:

grep -vf file2 file1 

并获取所有 file1,因为整行 file2 从未出现在 file1 中。

我试过:

diff file1 file2 | grep \^|<

并获取所有 file1 的每一行 <.

有人告诉我,如果我可以删除 file2 中每行的前 8 个字符,那么 diff/grep 命令就会起作用。

我也尝试过使用各种选项的 findstr (Windows),但还是无法正常工作。

另外,请注意每个文件的行数比我显示的要多得多。

有什么想法吗?

最佳答案

你可能必须做一个循环:

for i in $(cat File1); do
  grep -q "\<$i\$" File2 || echo $i
done

这将打印出:

access

关于linux - 搜索包含在 file1 中但在 file2 中找不到的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39968657/

相关文章:

ruby - 执行 HoneyC 时出错 - `require' : cannot load such file

ios - 同一字典 Swift 中的字符串和 UIImages

java - 传递输入后丢失字符串中的数据

java - 在匹配预定义条件的 vector 序列中搜索最小索引的算法

javascript - 在 javascript 中,如何在数组中搜索子字符串匹配项

linux - 在 Visual Studio for Linux 项目上从 jenkins 运行 devenv 时未定义的远程主机

linux - 如何使用 awk 删除 file1 的行,其第 1 列值存在于 Ubuntu 的 file2 中?

linux - Pi板启动时如何自动运行a.out文件?

php - 如何在我的 php 代码中添加搜索消息 "Not found"?