en inserant des lignes en début avec sed
version 2
le script balaie les lignes du fichier toto.txt, les recopie au début de toto2.txt, qui est renommé ensuite .
A la fin, l'ordre des lignes est donc inversé. Un backup préalable est écrit
#!/bin/bash
file="toto.txt"
cp "$file" "$file".bk
echo "">toto2.txt
while IFS= read -r line
do
sed -i 1i"$line" toto2.txt
done <"$file"
mv toto2.txt "$file"
version 1
le script balaie les lignes du fichier1, et les recopie au début de fichier2.
A la fin, l'ordre des lignes est donc inversé.
nota: la commande sed -i 1i"$line" fichier2.txt insère à la 1° ligne. (2i pour la 2° ligne).
#!/bin/bash
file="fichier1.txt"
while IFS= read -r line
do
sed -i 1i"$line" fichier2.txt
done <"$file"
sans aide-mémoire, comment se servir de ce machin diabolique ? mais quand il faut, il faut.
extraire la ligne 1 d'un fichier
sed -n 1p fichier.txt
Insérer un caractère ou un mot à la fin de la ligne 1
sed -i '1s/.*/&mot/' fichier.txt
exemple : sed -i '1s/.*/&'$tagminute'/' edf.txt
Ajouter une ligne en début de fichier
sed -i 1iletexte fichier.txt
supprimer une ligne
sed -i 'nd' fichier.txt ( n le numéro de la ligne )
remplacer des caracteres
echo $chaine | sed -e "s/a/b/g"` # remplace les a dans la chaine par un b
echo $chaine | sed -e "s/.//g"` # remplace les points dans la chaine par rien