Editeur vous avez dit?
La curiosité n’est pas un vilain défaut mais une qualité fondamentale.
On a parfois besoin d'éditer un fichier, rappel :
echo -e '<html>\n<head>\n<tilte>Index</title>\n</head>\n<body><pre>' > pmount.html
df -h >> pmount.html
echo -e '</pre>\n</body>\n</html>' >> pmount.html
Attention, on utilise ici des simples quote (') pour les echos car cela bloque l'interprétation du contenu par l'interpréteur, sinon les signes plus petit et plus grand serait interprèté comme redirection.
On vient de créer une page pmount.html, qui va contenir le résultat de la commande df -h
cat pmount.html
On a vu qu'avec cat on peut aussi placer du contenu dans un fichier
Une syntaxe que l'on a pas encore vu permet de placer du contenu dans un fichier
vim eof.sh
#!/bin/bash
cat << EOF > monfichier.txt
Ceci fait partie de l'exemple
J'espère que vous avez compris
Bonne fin de journée
EOF
Il faudra rendre ce script exécutable puis l'exécuter.
chmod +x eof.sh
./eof.sh
cat monfichier.txt
Ceci fait partie de l'exemple
J'espère que vous avez compris
Bonne fin de journée
Tant que cat ne rencontre pas EOF (End Of File) il rempli le fichier
On a vu plus haut une variante
cat > monfichier.txt
Ici on est en mode direct
Faire [ctrl]+d pour signaler la fin de fichier.
Ce sont des cas de création et d'ajout, nous allons voir maintenant un cas de modification
Nous allons d'abord créer un fichier avec des adresses ip
for ((i=1;i<=254;i++))
do
echo 192.168.34.$i
done > exemple_ip.lst
Regarder le résultat
cat exemple_ip.lst
Imaginons que nous désirons modifier cette liste car ce n'est pas 192.168 mais 172.14
Ici les mauvaises langues diraient on a qu'à modifier la commande précédente.
Mais on est ici pour apprendre une autre technique
On va utiliser sed (stream editor)
cat exemple_ip.lst | sed 's/192.168/172.14/g' > exemple_sed.lst
cat exemple_sed.lst
On voit de suite le résultat !
's/' signale que l'on va rechercher le texte ou l'expression régulière ici 192.168 puis '/' signale la fin du champ de recherche on place ensuite la valeur de remplacement 172.14 puis un '/' pour signaler la fin du champs de remplacement ensuite le g signale que le remplacement est général. Ensuite on redirige le résultat vers un fichier.
less exemple_sed.lst
q pour quitter less