SED: ouvrir / lire les fichiers dans le répertoire

J’ai un répertoire avec des fichiers comme celui-ci:

one.xml two.xml three.xml 

etc.

Je veux ouvrir / lire tous les fichiers et enregistrer des valeurs dans un nouveau fichier (par exemple new.txt )

Le résultat dans le nouveau new.txt devrait être (nom de fichier / valeur de la première ligne):

 one value of first line two value of first line three value of first line 

etc.

Vous pouvez obtenir la première ligne en utilisant head . Les éléments suivants devraient fonctionner:

 for i in *.xml; do echo -n "$(basename "$i" ".xml") "; head -1 "$i" ; done >> new.txt 

sed peut le faire très bien, avec un petit coup de pouce de find:

 find . -maxdepth 1 -type f -name "*.xml" -exec sed -n 1p "{}" ";" 

(YMMV en ce qui concerne la citation des arguments à exec).

Ce qui est fait, c’est d’utiliser 1p pour imprimer la première ligne de chaque fichier et combiner cela avec -n qui supprime la sortie normale, ce qui dans ce cas serait d’imprimer chaque ligne du fichier.