我有几个文件(文件1.txt和文件2.txt)并且我正在使用 unix“comm”命令来比较这些文件以找出 file1.txt 上的唯一行
以下是 file1.txt 中的行:
OD1
EN2
OD3
OD4
OD5
EN6
EN7
EN8
EN9
OD10
OD11
OD12
以下是 file2.txt 中的行:
EN1
EN2
EN3
OD4
OD5
EN6
EN7
EN8
EN9
OD10
我使用的命令为:
comm -23 file1.txt file2.txt
实际的
结果是:
OD1
OD10
OD11
OD12
OD3
期待
我期待着:
OD1
OD11
OD12
OD3
您能帮助一下如何获得预期的结果吗?
答案1
文件必须按词法排序,否则comm
将不起作用。
将它们按顺序排序并重试。
或者使用:
comm -23 <(sort file1.txt) <(sort file2.txt)
答案2
使用
sdiff -s file1.txt file2.txt | awk '{print $1}' | sort -u
输出是
OD1
OD11
OD12
OD3