Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2014, à 10:32

Le Goss

[Résolu] bash renommer des fichiers avec la 2e ligne de leur contenu

Bonjour à tous,

Dans un dossier, je dispose de centaines de fichiers *.txt.
Je cherche à les renommer par le contenu de la 2e ligne de chacun d'eux (plus généralement, par la n-ième).
Le traitement par lot, c'est bon, mais pour le renommage, je sèche.

Merci pour aide,
Cordialement

Dernière modification par Le Goss (Le 03/04/2014, à 11:42)


Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne

#2 Le 03/04/2014, à 10:41

genma

Re : [Résolu] bash renommer des fichiers avec la 2e ligne de leur contenu

Si tu sais récupérer le nom du fichier, tu fais ensuite un "mv ancienNom nouveauNom".
C'est la commande mv pour renommer.


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière".
Utilisateur d'Ubuntu depuis la version 4.10 !
Mon blog ?      https://blog.genma.fr
Mon twitter?     http://twitter.com/genma

Hors ligne

#3 Le 03/04/2014, à 10:51

pingouinux

Re : [Résolu] bash renommer des fichiers avec la 2e ligne de leur contenu

Bonjour,
Essaye

n=2
for i in *.txt; do echo mv -i "$i" "$(sed -n ${n}p "$i")"; done

et enlève le echo si c'est bon.

Hors ligne

#4 Le 03/04/2014, à 11:39

Le Goss

Re : [Résolu] bash renommer des fichiers avec la 2e ligne de leur contenu

pingouinux a écrit :

et enlève le echo si c'est bon.

Tout est OK!
Merci beaucoup!


Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne