BASH:在数组中合并给定不同文件名前缀的多个文件

时间:2009-08-27 23:56:53

标签: bash

在查看this post之后,看起来我可以使用cat来合并文件。

但是,对于如何使用我的文件名前缀数组,我有点困惑。 例如:

prefixes=( pre1 pre2 pre3 pre4 pre5 )

如果我有这样的前缀数组,我怎样才能使命令看起来像这样或做类似的事情:

cat pre1.file pre2.file pre3.file pre4.file pre5.file > merged.file

3 个答案:

答案 0 :(得分:3)

您可以使用循环迭代数组中的文件名:

prefixes=( pre1 pre2 pre3 pre4 pre5 )
for p in "${prefixes[@]}"; do cat "$p.file"; done > merged.file

答案 1 :(得分:0)

eval "cat {${prefixes[*]}}.file > merged.file"

答案 2 :(得分:0)

如果你的所有前缀都遵循一个模式,那么你可以使用globbing来实现:

cat pre*.file > merged.file

cat pre?.file > merged.file

此外,您可以使用大括号扩展作为前缀列表:

cat {pre1,pre2,pre3,pre4,pre5}.file > merged.file