Forum Astuces.divers [Terminal] Substitution multi-ligne en sed

Posté par  .
Étiquettes : aucune
0
14
sept.
2004

Parfois on souhaite changer une chaîne de caractères de plusieurs mots dans un texte, et ceci en gardant des saut de lignes etc. Par exemple, s/je pense/nous pensons/g

La solution est d'utiliser les commandes N (rajoute une nouvelle ligne au buffer en cours), P (sort le buffer en cours jusqu'au premier retour chariot) et D (efface jusqu'au premier retour-chariot du buffer en cours):


sed -e '
N
s/je\([ \n]\{1,\}\)pense/nous\1pensons/g
P
D' input.txt > output.txt

Forum Astuces.divers [Terminal] ! en shell

Posté par  .
Étiquettes : aucune
1
10
sept.
2004
Le ! en shell permet plein de trucs sympa.
  • !! refait la dernière commande
  • !cmd refait la dernière commande commençant par cmd
  • !cmd:p permet de visualiser sans éxecuter la dernière commande commençant par cmd
  • !$ est le dernier mot du ligne de commande précédent
  • !cmd:$ est le dernier mot du dernier ligne de commande commençant par cmd
  • !* est l'ensemble de la dernière ligne de commande à part le premier mot
Pourquoi ce dernier est-il utile? Pense à ceci :
(…)