2009-08-27 20 views
0

this postを見た後、catを使ってファイルをマージするだけのようです。BASH:配列内に異なるファイル名の接頭辞を付けて複数のファイルをマージする

しかし、私はファイル名接頭辞の配列でこれを行う方法についてちょっと混乱しています。たとえば :私はそのような接頭辞の配列を持っている場合は

prefixes=(pre1 pre2 pre3 pre4 pre5) 

は、どのように私は、コマンドは次のようになりまたはこれに似た何かを作ることができます。

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

答えて

3

あなたはループを使用することができますすべてのプレフィックスは、パターンに従っている場合

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

これは私のために動作しません。外側の中括弧はファイル名を壊し続け、{pre} .fileのように名前に含まれます。私はそれらを取ってみましたが、それでも動作しませんでした。 – codingbear

0

:配列内のファイル名を反復します

cat pre*.file > merged.file 

あるいはまた

cat pre?.file > merged.file 

は、あなたは接頭辞のリストについては、ブレース展開を使用することができます:あなたはグロブを使ってそれを行うことができます

cat {pre1,pre2,pre3,pre4,pre5}.file > merged.file 
関連する問題