2009-08-27 7 views
0

Après avoir regardé this post, il semble que je peux simplement utiliser cat pour fusionner des fichiers.BASH: Fusion de plusieurs fichiers avec différents préfixes de nom de fichier dans un tableau

Cependant, je suis un peu confus sur la façon de le faire avec mon tableau de préfixes de nom de fichier. Par exemple:

prefixes=(pre1 pre2 pre3 pre4 pre5) 

Si j'ai un tableau de préfixes comme ça, comment puis-je faire une commande pour ressembler à ceci ou quelque chose de similaire à ceci:

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

Répondre

3

Vous pouvez utiliser une boucle itérer sur les noms de fichiers dans le tableau:

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

Cela ne fonctionne pas pour moi. Les accolades externes continuent de jouer avec le nom du fichier et sont incluses avec le nom, comme {pre} .file. J'ai essayé de les sortir, mais ça n'a toujours pas marché. – codingbear

0

Si tous vos préfixes suivent un modèle puis vous pouvez le faire en utilisant les jokers:

cat pre*.file > merged.file 

ou

cat pre?.file > merged.file 

Vous pouvez également utiliser le développement des accolades pour obtenir une liste des préfixes:

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