J'ai la commande suivante qui prend une certaine partie d'un fichier dans le répertoire actuel, l'écrit dans un fichier temporaire, récupère une partie d'un autre fichier d'un répertoire vers le haut, l'écrit dans un fichier temporaire, puis concatène finalement ces deux fichiers temporaires en un et le renvoie à result
:
sed -e '3003,$d' file1 > temp1;sed -n '3,$p' ../otherfile1 > temp2; cat temp1 temp2 > ../result1
Cela fonctionne pour un fichier, mais maintenant je veux le faire dans un répertoire entier.
Je pensais que l'utilisation d'un caractère générique dans la commande sed fonctionnerait:
sed -e '3003,$d' file* > temp1;sed -n '3,$p' ../otherfile* > temp2; cat temp1 temp2 > ../result*
mais bien entendu, il ne sait pas automatiquement comment numéroter les fichiers temporaires et le fichier de sortie.
Comment utiliser cette commande sur un répertoire entier, en générant un fichier de résultat unique pour chaque concaténation?
la source
result1
,result2,
result3, etc. With the current loop it overwrites the
fichier result1`.En utilisant un sous-shell, on peut même éviter les fichiers "temp1" et "temp2". De plus, si les noms de fichiers contiennent des espaces, j'ai tendance à utiliser "while":
la source