Unix/bash/Shell:如何从列表中查找文件并将其合并到一个文件中

Unix/bash/Shell:如何从列表中查找文件并将其合并到一个文件中,bash,shell,unix,Bash,Shell,Unix,我想将特定文件(XXXXXXX\u Abstract\u TOC.txt,XXXXXXX\u Chapter1.txt,XXXXXXX\u Chapter2.txt,XXXXXXX\u Chapter3.txt,XXXXXXX\u Conclusion.txt)根据文本文件中的特定数字合并到一个文件中(/util\u files/list\u NRPs.txt) 注:X是[0-9]数字 列表\u NRPs.txt包含以下内容: 0030001 0030002 0030004 ... 00300

我想将特定文件(
XXXXXXX\u Abstract\u TOC.txt
XXXXXXX\u Chapter1.txt
XXXXXXX\u Chapter2.txt
XXXXXXX\u Chapter3.txt
XXXXXXX\u Conclusion.txt
)根据文本文件中的特定数字合并到一个文件中(/util\u files/list\u NRPs.txt

注:X是
[0-9]
数字

列表\u NRPs.txt包含以下内容:

0030001
0030002
0030004
...
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
...
/All_Files文件夹中,我有如下文件:

0030001
0030002
0030004
...
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,我想将
XXXXXXX\u Abstract\u TOC.txt
XXXXXXX\u chapter 1.txt
XXXXXXX\u chapter 2.txt
XXXXXXX\u chapter 3.txt
XXXXXXX\u chapter 4.txt
XXXXXXX\u结论.txt
合并到
XXXXXXX\u 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
开始,但我不知道如何继续


我该怎么做呢?

您可以使用globbing来连接多个文件,这些文件与
列表\u NRPs.txt中的每一行匹配:

while read -r ch; do
    cat "/All_Files/$ch"* > "/All_Files/${ch}_All.txt"
done < /util_files/list_NRPs.txt 
读取时执行 cat“/All_Files/$ch”*>“/All_Files/${ch}\u All.txt” 完成
坏主意将
全部
部分
(章节,toc)存储在同一目录中。在后续运行中,您需要从列表中排除全部,并使全局搜索(通配符)复杂化。请注意,谢谢@jm666