Blogotux

Trucs, astuces pour linux mais c'est d'abord mon bloc-notes, donc sans grandes prétentions

Mes liens avec Shaarli

inverser les lignes d'un fichier

03/03/2020 à 20:28:21 - Aucun commentaire

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"

Dans les catégories : script, sed

Sed

01/10/2013 à 19:34:02 - Aucun commentaire

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

Dans les catégories : sed