Je dois insérer une ligne avec du texte spécifique sur la deuxième ligne (en déplaçant ainsi les autres lignes dans le fichier) de centaines de fichiers dans un répertoire. Des astuces Unix rapides sur comment cela peut-il être fait?Comment insérer une ligne sur une ligne spécifique dans plusieurs fichiers sous Unix?
Répondre
sed -i -e '2iYour line here' /dir/*
Notez que la sémantique sed -i
varient selon la saveur Unix, afin de vérifier votre man sed
. Ceci est écrit pour la saveur GNU.
c'est une utilisation AWK
plutôt que le sed
,
for i in $(<list_of_files)
do
awk '{if (FNR!=2) print $0;
else { print "new line"; print $0}}' $i > ${i}.tmp;
mv ${i}.tmp $i;
done
ls | xargs --replace=foo perl -i -ne 'print; print "second line text\n" unless $x++;' foo
Je vote * jamais * pour recommander 'perl -i' sans sauvegarde:' perl -i.bak'. C'est facile, et vous pouvez facilement supprimer les sauvegardes une fois que vous êtes sûr de ne pas avoir mal traité votre montage. – Telemachus
perl -pi -we'print "extra line\n" if $. == 3; close ARGV if eof' files
Le close(ARGV)
est nécessaire de redémarrer le compteur de ligne $.
au début de chaque fichier; par défaut, il compte les lignes entre les fichiers.
Ne pensez-vous pas qu'il vaut la peine de faire '-i.bak' pour vous protéger d'une faute de frappe qui efface beaucoup de données? (Imaginez que vous oubliez '-p'.) – Telemachus
@Telemachus: lorsque je fais un répertoire entier, je préfère copier tout le répertoire en entier (par exemple cp -a dir {,. Save}); alors je peux le reprendre si nécessaire. – ysth
- 1. Insérer une ligne dans Excel (liaison tardive)
- 2. VB - Insérer une ligne vide
- 3. Insérer une ligne pour chaque
- 4. Comment désactiver l'avertissement dans xcode sur une ligne spécifique?
- 5. Script Unix lisant une ligne et une position spécifiques
- 6. Comment insérer par programme une ligne dans un GridView?
- 7. C# Liaison sur une ligne spécifique dans la table
- 8. Comment insérer une ligne avec l'ID d'auto-incrémentation dans une table à plusieurs clés primaires?
- 9. Numéro de comptage de Delimiter dans une ligne dans un fichier sous Unix
- 10. ASP.NET Datagrid - masquer une ligne/colonne spécifique
- 11. Exécution d'un script sur plusieurs fichiers sous Unix
- 12. Comment mime supprimer une ligne spécifique dans un UITableView?
- 13. comment insérer une ligne dans la vue grille
- 14. Supprimer une ligne spécifique d'un fichier texte?
- 15. Comment imprimer sur la ligne en cours dans une application de ligne de commande?
- 16. Comment puis-je remplacer une ligne spécifique par un numéro de ligne dans un fichier texte?
- 17. Sifr3: Plusieurs polices dans une ligne
- 18. Insérer une ligne de la grille dans datacontext
- 19. Puis-je insérer une ligne dans un GridView?
- 20. Supprimer une ligne spécifique dans un .NET RichTextBox
- 21. Bouton personnalisé sur une ligne dans UITableView?
- 22. svn diff une ligne spécifique dans un fichier
- 23. Comment obtenir une référence à une ligne de table avec une valeur spécifique dans jQuery
- 24. Afficher Zend_Form_Element_Radio sur une ligne
- 25. Comment passer à une ligne d'entrée spécifique en Perl?
- 26. Comment tracer une ligne sur l'iPhone?
- 27. comment insérer ligne par ligne de contenu dans un fichier texte dans une base de données mysql?
- 28. Sortie sur une seule ligne
- 29. Comment INSÉRER en utilisant une JOIN jointe sur plusieurs clés?
- 30. Comment positionner un DataGridView sur une ligne spécifique (de sorte que la ligne sélectionnée soit en bas)?
wow .. presque me donne envie d'apprendre sed. Merci beaucoup! – Learning