2012-10-25 40 views
0

你好,我想迭代合併input_directory中的文件,並將合併的文件放入output_directory。在input_directorybash腳本 - 在目錄上迭代合併文件

假設我有:FILE1.TXT,FILE2.TXT,file3.txt

我想輸出目錄包含下列文件:

  • merge1.txt:file1相同.TXT
  • merge2.txt:合併FILE1.TXT FILE2.TXT
  • merge3.txt:合併FILE1.TXT FILE2.TXT file3.txt

我幾乎沒有使用bash腳本的經驗,很顯然它可​​以用for循環中的迭代器完成,但我不知道如何。

預先感謝您..

回答

0

商店前面的那名被附加到輸出,並且在下一個迭代期間使用它:

#!/bin/bash 

touch prev #a temp variable to hold previous filename 
i=1; 

for file in $(ls /INPUT/file*); 
do 
    cat /OUTPUT/$prev /INPUT/$file > /OUTPUT/merge$i; 
    prev=merge$i; 
    let i=i+1 
done 

這個代碼利用事實ls列表的優勢文件排序當他們有相同的前綴時。如果您的文件名具有不同的前綴並且具有您想輸出它們的特定順序,則可以對其進行修改。

+0

非常感謝!我真的很感激,你救了我幾個小時!謝謝謝謝謝謝 – Roark

相關問題