我正在尝试比较两个文件并打印输出,如果它们在某些字段上匹配。
文件1.txt:
bart:29482164591748
apu:29482164591748
smithers:68468468468464
lisa:68468468468464
maggie:2348578903247548
Run Code Online (Sandbox Code Playgroud)
文件2.txt:
68468468468464:keyboard
68463894578424:user
29482164591748:computer
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
bart:29482164591748:computer
Run Code Online (Sandbox Code Playgroud)
经典之作join:
join -t: -1 2 -2 1 -o 2.1,1.1,1.2 <(sort -t: -k1,1 file1) <(sort -t: -k2,2 file2)
Run Code Online (Sandbox Code Playgroud)
-t: 指定冒号作为分隔符。-1 2 file1 的连接字段是第二个-2 1 file2 的 join 字段是第一个-o 2.1,1.1,1.2 输出格式。<(...): 两个文件都必须在连接字段 (-k1,1和-k2,2)上排序,-t:指定冒号作为sort.