Bonjour à tous.
J'ai un fichier avec un listing.
Je souhaite dans un script
retirer la première ligne du fichier source
Ajouter cette ligne à la fin d'un ficher destination.
Aujourd'hui je fait cela me je me demande si il y aurais une facon plus direct?
sed -n '1p' source.txt >> destination.txt; sed '1d' source.txt > tmpfile; mv -f tmpfile source.txt
# Plus court
Posté par Sébastien Maccagnoni (site web personnel) . Évalué à 4.
Salut,
head -n1 source.txt >> destination.txt && sed -i '1d' source.txt
[^] # Re: Plus court
Posté par gotcha5832 . Évalué à 1.
Super je te remercie
# uniquement avec sed
Posté par wismerhill . Évalué à 3.
Sed seul suffit pour faire ce que tu demande en faisant usage du hold space:
Si tu veux modifier directement le fichier, ajoute l'option -i, sinon redirige vers un autre fichier.
Et puisque tu as posté dans le forum astuces par erreur, j'en ajoute une:
Pour comparer directement le résultat avant après, sans devoir le mettre dans un fichier temporaire, tu peux profiter du process substitution du shell:
(testé avec bash, je ne sais pas si c'est une fonctionnalité de base de shell posix ou une extension de bash)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.