我有 2 个包含numbers_ID、status、descrpation 的文件我想根据数字加入这两个文件
number_123, status1, status2
我的文件1:
number_123,this car is under maintenance
number_345,this car checked is done
number_356,this car is under main
我的文件2:
number_123,hold
number_345,done
我只需将两个文件中的现有数字连接为:
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
我使用 comm file1 file2 来查找常用数字,但该文件如下所示:
number_123,this car is under maintenance
number_123,hold
number_345,this car checked is done
number_345,done
我怎样才能将其打印为一行
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
答案1
该comm
实用程序用于比较文件之间的整行。你想做的就是加入某个特定领域。
$ join -t, file2 file1
number_123,hold,this car is under maintenance
number_345,done,this car checked is done
这假设两个文件都按连接字段(每个文件中第一个逗号分隔的列)排序。
如果文件未排序,您可以使用以下命令对它们进行预排序
sort -t, -k1,1 -o file1 file1
sort -t, -k1,1 -o file2 file2
在ksh93
,bash
或中zsh
,您还可以“即时”进行排序:
join -t, <( sort -t, -k1,1 file2 ) <( sort -t, -k1,1 file1 )