如何打印出两个文件之间不匹配的单词?

9 浏览
0 Comments

如何打印出两个文件之间不匹配的单词?

只需要打印出 \"house\"。

0
0 Comments

如何打印两个文件之间不匹配的单词?

问题的原因是需要找出两个文件之间不匹配的单词。解决方法是先对文件进行排序,然后使用diff命令进行比较,最后使用sed命令过滤掉diff命令输出中的符号。具体操作如下:

1. 使用sort命令对文件进行排序,并使用<(sort file1)<(sort file2)将排序后的结果作为diff命令的输入。

2. 使用diff命令比较两个排序后的文件,找出不匹配的行。

3. 使用sed命令过滤掉diff命令输出中以"<"开头的行,并去掉行首的"< "符号,只保留单词部分。

最终得到的输出即为两个文件之间不匹配的单词。

以下是完整的代码示例:

diff <(sort file1) <(sort file2) | sed -n '/^</s/^< //p'

0
0 Comments

使用awk

awk 'FNR==NR{arr[$0]=1; next} !($0 in arr)' FILE2 FILE1

首先,使用awk命令在FILE2中构建一个关联数组,并在FILE1中循环,只打印那些不匹配的单词。

使用comm命令

comm -2 -3 <(sort FILE1) <(sort FILE2)

-2参数抑制了只在FILE2中独有的行,-3参数抑制了在两个文件中都存在的行。

0
0 Comments

问题的原因是希望找出两个文件中不匹配的单词,并将其打印出来。解决方法是使用grep命令的一些参数来实现。

首先,我们有两个文件file1和file2,内容分别如下:

$ cat file1
cat
dog
house
tree
$ cat file2
dog
cat
tree

我们想要找出file1中不在file2中的单词。为了实现这一点,我们使用grep命令,并结合一些参数。

- -v标志用于只显示不匹配的内容。

- -f参数后面跟着一个文件名,用作过滤器。

- -F参数用于精确匹配,避免了任何模式匹配的降速。

因此,我们可以使用以下命令来解决问题:

$ grep -vF -f file2 file1
house

这个命令的含义是,从file1中找出不在file2中的单词,并将其打印出来。在这个例子中,输出结果是"house"。

通过使用grep命令的参数,我们可以方便地找出两个文件中不匹配的单词,并打印出来。这对于比较两个文件中的内容非常有用,特别是在需要找出差异的情况下。

0