Re: Récupérer le résultat d'une commande sed dans une variable ou un fichier : problème...
----- Mail original -----
> De: "roger tarani" <roger.tarani@free.fr>
> À: "Liste Debian" <debian-user-french@lists.debian.org>
> Envoyé: Jeudi 4 Novembre 2021 14:43:01
> Objet: Re: Récupérer le résultat d'une commande sed dans une variable
> ou un fichier : problème...
> Bonjour,
> Il s'agit d'imprimer la ligne, puis d'insérer une copie de la ligne
> en insérant au début de chaque ligne " -> " et la chaîne suivante
> DOMAIN=http://toto.com/
> Chaque ligne contient un nom de fichier
> $ cat mon_fichier
> foo
> bar
> baz
> truc
> machin
> Il s'agit d'obtenir ceci
> $ cat mon_fichier_resultat
> foo
> -> http://toto.com/foo
> bar
> -> http://toto.com/ bar
> baz
> -> http://toto.com/ baz
> truc
> -> http://toto.com/ truc
> machin
> -> h ttp://toto.com/ machin
> D'où la commande sed qui
> va ignorer les lignes commençant par abc ou les lignes vides :
> /^abc\|^$/!
> ... et sur les autres lignes va imprimer le PS/pattern space,
> puis effectuer la substitution convoitée, AVEC un caractère | et non
> avec / comme d'habitude car DOMAIN contient des / et cela ne permet
> pas à la commande sed s/old/new/g de fonctionner )
> { p; s|^| -> '$DOMAIN'|g }
> ou de préférence (même si la précédente sans les guillemets
> fonctionne)
> { p; s|^| -> '"$DOMAIN"'|g }
> Utiliser grep ?
> Je ne cherche pas un mot dans un fichier mais je cherche à ignorer
> les lignes commençant pas abc et les lignes vides, puis à faire le
> traitement décrit (conserver la ligne et insérer la ligne avec une
> substitution)
> Je ne vois pas bien comment faire avec grep ?
> Merci à toi
> Cordialement
> Roger
Bonjour Roger,
En premier tu t'occupes d'éliminer les lignes vides avec Sed ou avec Awk
awk 'NF' file
documentation :
https://stackoverflow.com/questions/16414410/delete-empty-lines-using-sed
https://unix.stackexchange.com/questions/88721/match-multiple-regular-expressions-from-a-single-file-using-awk
pour l'histoire des premières lettres 'abc' dans la colonne via les 'regex pattern' :
https://documentacoes.wordpress.com/2017/09/13/regex-and-pattern-matching-with-awk/
pour l'histoire de colonne :
https://stackoverflow.com/questions/15361632/delete-a-column-with-awk-or-sed
Ensuite avec Awk il suffira de filtrer la bonne colonne et d'employer Echo et
de bien convenablement tout ordonner ...
echo -e ' -> http://toto.com/$VAR' >> file-1.txt
Merci de bien vouloir résoudre le premier problème et seulement pas après pas avancer
de telle façon que ce soit clair et compréhensible
Bien à toi
Bernard
Reply to: