我有一个File_1.txt,里面有以下数据。
1234
2567
第二个文件File_2.txt包含以下数据。
2015-10-30,1234,zxcfgdk,kyfz
2015-10-30,2567,askjfkj,aaaa
2015-10-30,8888,bsjfjah,iojk
我想将File_1.txt数据与File_2.txt的列 2 数据进行比较。如果匹配,则将整行File_2.txt重定向到单独的文件。以及与另一个文件不匹配
的那个。用谷歌搜索了很多页面。但没有任何帮助。
谢谢!
带awk
:
$ cat s.awk
BEGIN { FS="," }
NR==FNR { a[$1]; next }
$2 in a { print > "matched.txt" }
!($2 in a) { print > "missing.txt" }
$ awk -f s.awk f1 f2
$ cat missing.txt
2015-10-30,8888,bsjfjah,iojk
$ cat matched.txt
2015-10-30,1234,zxcfgdk,kyfz
2015-10-30,2567,askjfkj,aaaa
grep
:
另一种可能性是简单地使用 grep,但您需要确保 file1 中的值永远不会出现在 file2 之外的 file2 中(单词分隔):
$ grep -w -f f1 f2
2015-10-30,1234,zxcfgdk,kyfz
2015-10-30,2567,askjfkj,aaaa
$ grep -v -w -f f1 f2
2015-10-30,8888,bsjfjah,iojk