2016-07-21 93 views
0

我使用了join命令來合併腳本中的多個文件。在循環中加入命令

while read line; do 
    join file1 "$line" > output 
    cat output > file1 
done < list 

的事情是,隨着循環的進行,越來越多的數據從輸出文件,因爲不是所有的項目在所有數據文件匹配刪除。我如何保存不匹配的數據並將其包含在輸出文件中?

回答

0

man join是你的朋友!礦山提出的選項-a

-a file_number 
     In addition to the default output, produce a line for each 
     unpairable line in file file_number. 

所以,你應該使用:

while read line; do 
    join -a 1 file1 "$line" > output 
    cat output > file1 
    done < list 
+0

謝謝。我想問後續問題。一些列沒有任何數據。我曾嘗試使用-e 0來填充它們,但不知何故它不起作用。這似乎是什麼問題? –

+0

@DalePin:你應該爲此提出一個新問題,展示一個用於演示問題的輸入示例。對這個問題做一個簡單的編輯就太不同了,如果沒有示例數據,我無法猜測會發生什麼 –