cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu

sed est un Ă©diteur similaire Ă  vi mais permettant l’édition de fichier automatisĂ©e.

Comment ajouter un saut de ligne aprÚs un motif donné avec sed

Un cas d’usage typique pour cette astuce est lorsqu’on souhaite lire le contenu d’un fichier minimiser dont tout le contenu se trouve sur une seule ligne.

Si cela permet de limiter l’usage de la base passante, ce n’est pas trĂšs lisible. Si vous utiliser un Ă©diteur prenant en charge la coloration syntaxique et l’analyse du code, cela peut mĂȘme ĂȘtre un cauchemar suivant la taille du fichier, en effet certains Ă©diteurs vont utiliser beaucoup de ressources pour ce type de fichier.

Par exemple, dans le cas d’un fichier CSS on sait que chaque instruction doit se terminer par un point virgule. Il suffit dont d’ajouter un saut de ligne aprùs le caractùre ; (point virgule).

On peut rendre aisĂ©ment le fichier lisible Ă  l’aide de la commande :

sed 's/;/&\n/g' fichier.min.css >fichier.css

Cela ne donnera pas une belle indentation, comme certain IDE savent le faire, mais c’est comprĂ©hensible et vous trouverez certainement d’autre cas d’usage.

  • sed : Éditeur en ligne
  • 's/;/&\n/g' : Commande de remplacement [dĂ©tail ci-dessous]
    • s : Indique une action de recherche (search)
    • / : sĂ©parateur
    • ; : Le motif Ă  rechercher, ici c’est juste le caractĂšre ';'
    • / : sĂ©parateur
    • &\n : Par quoi sera remplacĂ© le motif [dĂ©tail ci-dessous]
      • & : Indique que le motif trouvĂ© doit ĂȘtre gardĂ© dans le rĂ©sultat Ă  cette position
      • \n : AprĂšs le motif, ici on veut un saut de ligne
  • / : sĂ©parateur
  • g : Indique une action de remplacement global
  • fichier.min.css : Le fichier initial
  • > : redirige le rĂ©sultat vers un fichier
  • fichier.css : Le nouveau fichier

Pour vous aider à comprendre voici un second exemple, ici on insÚre un saut de ligne avant le motif :

cat <<EOF | sed 's,ligne2,\n&,g'
ligne1
ligne2
ligne3
EOF

Explication en trois parties :

Partie 1 :

D’abord ce qui concerne le remplacement, puisque c’est le sujet de ce billet.

  • sed : Éditeur en ligne
  • 's,ligne2,\n&,g' : Commande de remplacement [dĂ©tail ci-dessous]
    • s : Indique une action de recherche (search)
    • , : sĂ©parateur
    • ligne2 : Le motif Ă  rechercher
    • , : sĂ©parateur
    • \n& : Par quoi sera remplacĂ© le motif [dĂ©tail ci-dessous]
      • \n : Saut de ligne
      • & : RĂ©insĂšre le motif dans le rĂ©sultat Ă  cette position
  • , : sĂ©parateur
  • g : Indique une action de remplacement global

Partie 2 :

La syntaxe de cat:

En gĂ©nĂ©ral, on utilise cat suivit d’un nom de fichier pour afficher son contenu

Mais de base la commande cat ne fait pas grand-chose, elle prend une entrĂ©e et la rĂ©Ă©crit Ă  l’identique, par exemple, les instructions :

ls -l --color=never | cat

Est identique à :

ls -l --color=never

On peut Ă  l’aide de l’opĂ©rateur << changĂ© l’entrĂ©e de la commande. Pour cela il faut faire suivre l’opĂ©rateur d’un motif qui devra ĂȘtre rĂ©pĂ©tĂ© sur la derniĂšre ligne.

cat <<MON_MOTIF
Trop cool
Je peux mĂȘme avoir une ligne avec juste EOF:
EOF
et lĂ  on est Ă  la fin
MON_MOTIF

ce qui affichera :

Trop cool
Je peux mĂȘme avoir une ligne avec juste EOF:
EOF
et lĂ  on est Ă  la fin

Partie 3 :

La redirection de cat vers une autre commande, ici sed:

La syntaxe suivante permet d’afficher le fichier et passe le rĂ©sultat Ă  la commande less qui affichera le fichier page par page :

cat fichier | less

Et dans notre cas, c’est en fait la mĂȘme chose :

cat EOF | N-IMPORTE-QUELLE-COMMANDE-QUI-TRAITE-LE-RÉSULTAT-DE-CAT | ÉVENTUELLEMENT-UNE-AUTRE-COMMANDE
ligne1
ligne2
ligne3
EOF

኿


â„č 2006 - 2020 | 🕾 Retour Ă  l'accueil du domaine | 🏡 Retour Ă  l'accueil du blog