#1 Le 18/03/2014, à 01:05
- one_more_time_
extraction entre 2 mots avec sed ou grep ?
Bonsoir à toutes et tous.
j'ai besoin d'extraire du texte entre deux balises (mots) dans un fichier texte ,mais je n'y parviens pas.
Les balises sont:`ids` = \ et \ donc la partie qui m’intéresse est ABCDEFGHIJKL
Tout d abord voici un exemple de la chaine:
xxx xxxxxx xxx,`ids` = \ABCDEFGHIJKL\,xxx x xxxx xxxxxxx,xxxx
ensuite , ce que j'ai tenter.
sed -nr 's/^.*"(\`ids\` = \\ .*\\ )"*$/\1/p' fichier.txt
Mais cela ne me donne rien.
Quelqu'un aurait il une idée ?
Merci.
Hors ligne
#2 Le 18/03/2014, à 04:26
- aduxas
Re : extraction entre 2 mots avec sed ou grep ?
sed -nr 's/.*`ids` = \\(.*)\\.*/\1/p' fichier.txt
ou avec regexp standard
sed -n 's/.*`ids` = \\\(.*\)\\.*/\1/p' fichier.txt
ou en deux substitutions
sed -n 's/.*`ids` = \\//;s/\\.*//p' fichier.txt
Dernière modification par aduxas (Le 18/03/2014, à 04:26)
Hors ligne
#3 Le 18/03/2014, à 11:18
- one_more_time_
Re : extraction entre 2 mots avec sed ou grep ?
Merci
ça semble fonctionner en remplaçant les quotes par des doubles quotes.
sed -n "s/.*`ids` = \\\(.*\)\\.*/\1/p" fichier.txt
Je suis au taff je n'ais pas le fichier en question.
Dès que je rentre je test ça.
encore Merci.
Hors ligne
#4 Le 18/03/2014, à 11:57
- credenhill
Re : extraction entre 2 mots avec sed ou grep ?
Hello
avec grep
$ grep -oP '(?<=`ids` = \\)[[:alnum:]]*' fichier
ABCDEFGHIJKL
Hors ligne