#1 Le 19/08/2013, à 16:01
- Maverickfan
Editer en même temps & sauver un grand nombre de fichiers txt
Bonjour,
Je vous pose la question, car je suis sûr que c'est possible, mais je n'ai pas l'habitude d'éditer plusieurs fichiers texte avec le terminal.
J'ai 2500 fichiers texte, avec des noms différents. Ces fichiers texte sont vides. Je voudrais pouvoir y écrire en même temps quelque chose.
Les fichiers s'appellent : texte1.txt, texte2.txt, fichier1.txt, fichier2.txt...
Je voudrais y écrire " bonjour". Je peux éditer les fichiers avec vi, mais je voudrais qu'il m'écrive "bonjour" dans tous les fichiers en même temps, et qu'il me sauve les modifications. Ou du moins, qu'il les modifie tout seul les uns après les autres sans que j'intervienne.
Connaîtriez-vous la commande ou la manip la plus adéquate? Ou un autre outil? Un script?
Un immense merci par avance!
Dernière modification par Maverickfan (Le 19/08/2013, à 17:41)
Hors ligne
#2 Le 19/08/2013, à 16:25
- Watael
Re : Editer en même temps & sauver un grand nombre de fichiers txt
salut,
avec bash et xargs
$ touch {text,fichier}{1,2}.txt
$ ls -1 *.txt
fichier1.txt
fichier2.txt
text1.txt
text2.txt
$ printf '%s\n' *.txt | xargs -I{} bash -c 'echo "Bonjour" > "$1"' _ {}
$ cat *.txt
Bonjour
Bonjour
Bonjour
Bonjour
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 19/08/2013, à 16:57
- Maverickfan
Re : Editer en même temps & sauver un grand nombre de fichiers txt
Ahahahah,
Un immense merci, en effet Watael! Non seulement ça marche du tonnerre, mais je ne l'aurais pas trouvé tout seul!
Le : printf '%s\n' *.txt | xargs -I{} bash -c 'echo "Bonjour" > "$1"' _ {} , m'a épargné 2500 éditions manuelles! C'est exactement ce qu'il me fallait! D'autant qu'après ces 2500 fichiers, j'en ai encore 2500 autres au moins...
Donc merci encore, et très bonne journée:-)!
Hors ligne
#4 Le 19/08/2013, à 17:40
- Maverickfan
Re : Editer en même temps & sauver un grand nombre de fichiers txt
Je reviens car j'ai également une petite question qui suit cette solution.
Maintenant, pour mon autre série, je dois sauter des lignes:-( En gros, je voudrais écrire cela dans mes fichiers texte :
Bonjour :
Au revoir :
Or, je ne connais pas la syntaxe pour effectuer un ou plusieurs sauts de ligne, et la, quand j'utilise la commande, cela m'écrit tout sur une ligne : Bonjour : Au revoir :
J'ai fait plusieurs essais mais cela n'a rien donné.
Un grand merci par avance si tu peux m'éclairer!
Hors ligne
#5 Le 20/08/2013, à 16:28
- Compte supprimé
Re : Editer en même temps & sauver un grand nombre de fichiers txt
Bonjour,
C'est un peu de la bricole...
#! /bin/bash
cheminDossier="/home/$USER/Bureau" # chemin du dossier au se trouve les fichiers...
cd "$cheminDossier"
fichier=$(ls $cheminDossier | grep ".txt")
for i in $fichier
do
echo | awk '{printf "Bonjour :\n\nAu revoir :"}' > $i
done
ou comme ça...
#! /bin/bash
cheminDossier=$(zenity --file-selection --directory)
cd "$cheminDossier"
fichier=$(ls $cheminDossier | grep ".txt")
for i in $fichier
do
echo | awk '{printf "Bonjour :\n\nAu revoir :"}' > $i
done
Un saut de ligne est fait par un \n
Dernière modification par Compte supprimé (Le 28/03/2015, à 00:47)
#6 Le 20/08/2013, à 19:53
- Watael
Re : Editer en même temps & sauver un grand nombre de fichiers txt
pareil, avec printf au lieu de echo
printf '%s\n' *.txt | xargs -I{} bash -c 'printf '%s\n\n%s\n' "Bonjour :" "Au revoir :" > "$1"' _ {}
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 20/08/2013, à 22:00
- pingouinux
Re : Editer en même temps & sauver un grand nombre de fichiers txt
Bonsoir,
Une autre possibilité est de transformer les fichiers *.txt en liens (symboliques ou durs) :
# Créer le fichier qui contiendra le texte (comme le fait Watael en #6)
printf '%s\n\n%s\n' "Bonjour :" "Au revoir :" >mon_fichier_texte
# Transformer les fichiers *.txt en liens symboliques
for fic in *.txt; do ln -sf mon_fichier_texte "$fic"; done
# ou bien
# Transformer les fichiers *.txt en liens durs
for fic in *.txt; do ln -f mon_fichier_texte "$fic"; done
Ensuite, la modification de n'importe lequel de ces fichiers modifiera tous les autres.
Hors ligne
#8 Le 08/09/2013, à 15:30
- Maverickfan
Re : Editer en même temps & sauver un grand nombre de fichiers txt
Bonjour,
Juste un petit passage ( avec du retard ) pour vous remercier pour vos solutions, qui ont fonctionné et qui m'ont permis d'économiser beaucoup de temps dans mon travail!
Je n'ai pas utilisé la dernière solution de pingouinux, car après une modification globale sur tous ces fichiers, chacun d'entre eux subira un certain nombre de modifications personnalisées. Mais le principe est tout autant valable:-)!
Hors ligne