在 shell 中两个文件的列上的差异



我想做一件非常简单的事情。我有两个文件如下:

FILE 1:
A s1 p1
B s2 p2
C s3 p3
FILE2:
B s4 p4
A s1 p1
C s6 p6

我想从该文件和打印差异中提取第一列和第三列。一种简单的方法是创建两个文件的 cut -f1,3 的中间文件并进行差异。这就是我想要的输出。但我不想创建中间文件。任何简单的一个衬里都可以做到这一点。

还有一件事,两个文件都没有排序,因此无法直接使用 join。

试试这个:

diff <(cut -f1,3 file1) <(cut -f1,3 file2)

引用:

逐行比较两个文件并在另一个文件中生成差异

使用 [ 进程替换 ]

diff -y <( awk '{print $1,$3}' file1) <( awk '{print $1,$3}' file2 )

应该这样做。请注意-ydiff的选项用于并排 o/p。

相关内容

  • 没有找到相关文章

最新更新