[SED]-problème de boucle dans script shell
[ASUS]
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
Je travaille sur un script bash et j'aimerai savoir comment, avec les commandes Sed, laisser une ligne vide entre les lignes que je veux enregistrer dans un fichier.
De plus j'aimerai connaitre la syntaxe qui me permettrai d'incrémenter les lignes d'un fichier dans une variable (dans une boucle while), c'est à dire :
$var<"ligne1"
traitements
$var<"ligne2"
traitements
$var<"ligne3"
traitements
.
.
.
etc
Je n'ai pas précisé mon objectif car je ne veux connaitre que la syntaxe
Je travaille sur un script bash et j'aimerai savoir comment, avec les commandes Sed, laisser une ligne vide entre les lignes que je veux enregistrer dans un fichier.
De plus j'aimerai connaitre la syntaxe qui me permettrai d'incrémenter les lignes d'un fichier dans une variable (dans une boucle while), c'est à dire :
$var<"ligne1"
traitements
$var<"ligne2"
traitements
$var<"ligne3"
traitements
.
.
.
etc
Je n'ai pas précisé mon objectif car je ne veux connaitre que la syntaxe
A voir également:
- [SED]-problème de boucle dans script shell
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? ✓ - Forum Shell
2 réponses
Salut,
Je travaille sur un script bash et j'aimerai savoir comment, avec les commandes Sed, laisser une ligne vide entre les lignes que je veux enregistrer dans un fichier.
Tout dépend du traitement (syntaxe) effectué avec sed ;-\
Mais en gros il suffit de rajouter un "\n" en fin de ligne traitée.
De plus j'aimerai connaitre la syntaxe qui me permettrai d'incrémenter les lignes d'un fichier dans une variable (dans une boucle while)
Je travaille sur un script bash et j'aimerai savoir comment, avec les commandes Sed, laisser une ligne vide entre les lignes que je veux enregistrer dans un fichier.
Tout dépend du traitement (syntaxe) effectué avec sed ;-\
Mais en gros il suffit de rajouter un "\n" en fin de ligne traitée.
De plus j'aimerai connaitre la syntaxe qui me permettrai d'incrémenter les lignes d'un fichier dans une variable (dans une boucle while)
var=1 ((var++)
Re-
Là on tourne en rond !
Il nous faut des exemples précis de ce que tu veux, du style AVANT => APRES.
Un exemple d'ajout de ligne vide :
Il ne faut pas mélanger les commandes/syntaxes propres au shell (echo) et les commandes/syntaxes de d'outils comme "sed" ou "awk" !
Là on tourne en rond !
Il nous faut des exemples précis de ce que tu veux, du style AVANT => APRES.
Un exemple d'ajout de ligne vide :
jp@MDK:~/tmpfs ssh$ cat plop $var<"ligne1" traitements $var<"ligne2" traitements $var<"ligne3" traitements jp@MDK:~/tmpfs ssh$ sed -n '/traitements/! s/.*/&\n/w foo' plop jp@MDK:~/tmpfs ssh$ cat foo $var<"ligne1" $var<"ligne2" $var<"ligne3" jp@MDK:~/tmpfs ssh$
Il ne faut pas mélanger les commandes/syntaxes propres au shell (echo) et les commandes/syntaxes de d'outils comme "sed" ou "awk" !
mais comment je commence à apprendre un peu le sed, je me demandais s'il existait une commande sed qui me permettrai de sauter des lignes ... donc je laisse "\n" :-)
Pour ce qui est de l'incrémentation, ta syntaxe me permettrai plus d'incrémenter des numéro de ligne non ?
ou alors c'est le même principe avec des chaînes de caractères ?
• Remplace l'enregistrement courant dans l'espace de travail par la ligne suivante sans entamer
un nouveau cycle. La ligne remplacée quant à elle est envoyé sur la sortie standard.
• echo -e "AAA\nBBB\nCCC\nDDD" | sed -n '/BBB/ {n;p;q}'
A quoi correspondent les chaines AAA nBBB nCCC ... BBB etc ?