我正在尝试运行搜索命令以从文件 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/