我有两个文件,其中IP地址为主键。文件二只有一个包含不同信息的子集。我想使用bash将第二列添加到第一个文件。
文件1:
192.168.1.1;hosta;aabbccddeef0 192.168.1.2;hostb;aabbccddeef1 192.168.1.3;hostc;aabbccddeef2
文件2:
192.168.1.2;differentHostname;
我cat file2 | cut -d\; -f1; do grep -w $addr file1 ...无法使用for addr的方法,因为无法从file2访问主机名。
cat file2 | cut -d\; -f1; do grep -w $addr file1 ...
有任何想法吗?
这是做什么的join:
join
$ join -a1 -t';' <(sort file1) <(sort file2) 192.168.1.1;hosta;aabbccddeef0 192.168.1.2;hostb,aabbccddeef1;differentHostname; 192.168.1.3;hostc,aabbccddeef2
注意:join要求文件按排序顺序。
您可以使用以下-o选项指定输出顺序:
-o
$ join -a1 -t';' -o 1.1 1.2 2.2 1.3 <(sort file1) <(sort file2) 192.168.1.1;hosta;;aabbccddeef0 192.168.1.2;hostb;differentHostname;aabbccddeef1 192.168.1.3;hostc;;aabbccddeef2