2017-03-22 3 views
1

私は、特定の番号に基づいて一つのファイルに特定のファイル(XXXXXXX_Abstract_TOC.txtXXXXXXX_Chapter1.txtXXXXXXX_Chapter2.txtXXXXXXX_Chapter3.txtXXXXXXX_Chapter4.txtXXXXXXX_Conclusion.txt)をマージしたいと考えていますテキストファイル(/util_files/list_NRPs.txt)から来てください。のUnix/bashの/シェル:リストからファイルを検索し、一つのファイルにマージする方法

注:Xは[0-9]

次のようにlist_NRPs.txtは含まれています

0030001 
0030002 
0030004 
... 

/All_Filesフォルダで、私はファイルを持って次のように

0030001_Abstract_TOC.txt 
0030001_Chapter1.txt 
0030001_Chapter2.txt 
0030001_Chapter3.txt 
0030001_Chapter4.txt 
0030001_Conclusion.txt 
0030002_Abstract_TOC.txt 
0030002_Chapter1.txt 
0030002_Chapter2.txt 
0030002_Chapter3.txt 
0030002_Chapter4.txt 
0030002_Conclusion.txt 
0030004_Abstract_TOC.txt 
0030004_Chapter1.txt 
0030004_Chapter2.txt 
0030004_Chapter3.txt 
0030004_Chapter4.txt 
0030004_Conclusion.txt 
... 

各XXXXXXXからlist_NRPs.txtXXXXXXX_Abstract_TOC.txtXXXXXXX_Chapter1.txtXXXXXXX_Chapter2.txtXXXXXXX_Chapter3.txtXXXXXXX_Chapter4.txtXXXXXXX_Conclusion.txtXXXXXXX_All.txtにマージします。

/All_Filesフォルダ内の最後のプロセスは次のようになります。

0030001_Abstract_TOC.txt 
0030001_Chapter1.txt 
0030001_Chapter2.txt 
0030001_Chapter3.txt 
0030001_Chapter4.txt 
0030001_Conclusion.txt 
0030001_All.txt 
0030002_Abstract_TOC.txt 
0030002_Chapter1.txt 
0030002_Chapter2.txt 
0030002_Chapter3.txt 
0030002_Chapter4.txt 
0030002_Conclusion.txt 
0030002_All.txt 
0030004_Abstract_TOC.txt 
0030004_Chapter1.txt 
0030004_Chapter2.txt 
0030004_Chapter3.txt 
0030004_Chapter4.txt 
0030004_Conclusion.txt 
0030004_All.txt 
... 

私はcat ../util_files/list_NRPs.txt | xargsで始めたいと思いますが、私は続行するのか分かりません。

どうすればいいですか?

+1

悪いアイデアストア 'ALL'一緒に同じディレクトリに' parts'(章、TOC)で。その後の実行では、Allをリストから除外し、グロビング(ワイルドカード)を複雑にする必要があります。 – jm666

+0

注目、@ jm666に感謝 –

答えて

1

あなたはlist_NRPs.txtファイル内の各行にマッチする複数のファイルを連結するためにグロブ使用することができます。

while read -r ch; do 
    cat "/All_Files/$ch"* > "/All_Files/${ch}_All.txt" 
done < /util_files/list_NRPs.txt 
関連する問題