Shell-Script
按行合併文件
是否可以按照使用or的簡單 bash 腳本給出的指令複製
File1
in的整行?File3``File2``sed``awk
File1: /*two or more columns*/ AC 456324 DC 689712 GH 123677 KL 236587 File2: /*one column*/ AC DC File3: AC 456324 DC 689712
我實際上是在使用 Python 字典執行此操作,我想知道您是否知道一個簡單的出路。
和
grep
grep -Ff File2 File1
和
awk
awk 'NR==FNR {a[$1]++;next} a[$1]' File2 File1
您可以通過
join
將兩個文件中的特定列在兩個文件中具有相同值的位置連接它們來組合來自兩個文件的行。請注意,輸入文件需要按該列中的值排序。join File1 File2
如果文件沒有排序,在 bash/ksh93/zsh 中:
join <(sort File1) <(sort File2)
這裡要加入的欄位是包含
AC
,DC
等的欄位。下面是一個例子,如果要加入的欄位是第 3File1
列,第 2 列在File2
。join -1 3 -2 2 <(sort -k3,3 File1) <(sort -k 2,2 File2)