2 votes

Comment obtenir une sous-chaîne d'une chaîne en utilisant une analyse de motif?

Je veux obtenir la sous-chaîne de n'importe quelle chaîne en utilisant une analyse de motif. Exemple de chaîne:

Je veux les valeurs suivantes (grepées par phone) :

string module name="Jai" fathername="S.S. Khan"
string module name="Jai"
string module name="Jai" value=""
string module name="Jai" email= "Jai@email.com" value=""

Si j'exécute la commande suivante, elle ne retourne que les lignes avec phone:

cat file.txt | grep phone.

Pour contourner cela, j'exécute :

cat file.txt | grep phone | sed 's/phone=".*"/phone=""/g' | grep -v phone`

Cela fonctionne mais je veux le faire avec une analyse de motif exacte.

Est-ce que quelqu'un peut m'aider ou me guider sur comment je peux le faire?

2voto

Sylvain Pineau Points 59212

Je suppose que vous voulez utiliser des expressions régulières pour faire votre analyse de motif. Vous pouvez essayer cette perl oneliner :

cat file.txt | perl -ne 'print "$1\n" if /(string module name=.*?)phone.*/'
  • perl -ne analysera votre file.txt ligne par ligne
  • ensuite, il ne retiendra que le contenu du motif entre les (...)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X