2012-03-03 169 views
3

我试图找出一个脚本文件,它包含一个包含文件列表的文件(每行是文件路径,即路径/到/文件)并将它们合并到一个文件中。Unix/bash:读取文件列表并将它们合并到一个文件

例如:

list.text 
-- 
path/to/filename 
filename 

然后调用脚本像这样

merge_script.sh LIST.TXT final_file.txt

任何帮助表示赞赏。我对bash脚本非常不满,并希望有些unix guru能够帮助我快速提出。否则,我需要几个小时才能做到这一点(嗯,假设我没有做到)。我一直在寻找一些例子并把它们放在一起。到目前为止没有运气。

感谢, 杰克

回答

5
xargs < list.text cat > final_file.txt 

xargs将文件名从发送到list.textcat,分批(所以他们不会溢出的命令行)。然后cat将打印每个文件的内容,输出重定向到final_file.text

+0

谢谢!奇迹般有效。我从来没有想过它只是一条线。 – juminoz 2012-03-03 01:56:40

+1

Linux是神奇的。它可以做任何事情。诀窍是搞清楚如何去问它! :-) – 2012-03-03 02:00:01

+0

我尝试用'find'的输出直接替换文件列表来创建文件的步骤,就像这样:'xargs <'find。 -name“* .txt”|排序'猫> concatentated.out'但我得到'不明确的重定向' - 任何建议? – 2016-05-17 13:03:04

相关问题