Problème Sed
Résolu
titoulevrai
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un problème avec une commande sed, je vous explique.
J'ai un script qui doit rajouter dans un autre fichier de script un debug en fin de ligne.
Ma commande sed du scrip donne a peut près ça
Dans mon FichierIn.txt il y a plusieurs commandes dont un autre sed et des echo ou awk par exemple.
Voici un exemple de FichierIn:
Et voici ce que j'obtient avec mon sed:
et pourtant voici ce que je voudrais obtenir:
J'ai le même problème pour des commande awk.
Merci d'avance.
Cordialement,
J'ai un problème avec une commande sed, je vous explique.
J'ai un script qui doit rajouter dans un autre fichier de script un debug en fin de ligne.
Ma commande sed du scrip donne a peut près ça
sed "/^#\|^$/! s/^[^#]*/& \&\& echo \"\ cette commande : OK\" >> result.txt \|\| echo \" Commande Not OK\" >> errors.txt /" FichierIn.txt >>fichierOut.sh
Dans mon FichierIn.txt il y a plusieurs commandes dont un autre sed et des echo ou awk par exemple.
Voici un exemple de FichierIn:
sed -i '/^test/ s/^/#/' /var/tmp/test
Et voici ce que j'obtient avec mon sed:
sed -i '/^test/ s/^/ && echo "cette commande : OK" >> result.txt || echo "Commande NOT OK" >> errors.txt #/' /var/tmp/test
et pourtant voici ce que je voudrais obtenir:
sed -i '/^test/ s/^/#/' /var/tmp/test && echo "cette commande : OK" >> result.txt || echo "Commande NOT OK" >> errors.txt
J'ai le même problème pour des commande awk.
Merci d'avance.
Cordialement,
A voir également:
- Problème Sed
- 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) ? - Guide
- Problème télécommande sedea - Forum Matériel & Système
- Comptage des caractères dans Word ✓ - Forum Word
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
1 réponse
Salut,
C'est normal. Ta commande prend en compte le fait qu'il puisse exister des lignes de commentaires (symbolisées par un croisillon (#)), mais ne font pas la différence avec la commande de substitution (
Malheureusement la commande "sed", même si elle peut gérer des conditions, n'est peut être pas à même de gérer des conditions trop complexes, comme c'est le cas ici ;-\
C'est normal. Ta commande prend en compte le fait qu'il puisse exister des lignes de commentaires (symbolisées par un croisillon (#)), mais ne font pas la différence avec la commande de substitution (
s/^/#/) qui contient elle aussi un croisillon ;-\
Malheureusement la commande "sed", même si elle peut gérer des conditions, n'est peut être pas à même de gérer des conditions trop complexes, comme c'est le cas ici ;-\
Merci encore.
Cordialement,
Titoulevrai
Là je passe par un fichier (script.sed) qui contient les commandes à fournir à "sed". Je fais ça pour une question de lisibilité.
Le fichier à modifier :
Le fichier contenant les commandes pour "sed" :
Le résultat :