J’essaie de créer une ligne à partir d’un fichier qui commence par “Residue XXX”. Cela fonctionne quand je n’ai que ‘Résidu’ mais ne fonctionne pas si j’ai ‘Résidu XXX’ Des raisons pour ce comportement?
Ici, il fonctionne:
grep '^Residue' log.txt Residue XXX highDenisity
et ne fonctionne pas:
grep '^Residue XXX' log.txt
Tenez la main si vous pensez qu’il ya un caractère de tabulation entre Residue
et XXX
.
Utilisez à la place une expression régulière agnostique des blancs.
grep '^Residue\s*XXX' log.txt
Cette expression régulière couvre plusieurs tabs ou un onglet et un espace entre les mots.
Ou vous pouvez simplement faire une logique and
avec awk
comme ceci:
awk '/^Residue/ && /XXX/' file
Cela ne produira que des lignes commençant par Residue
et contenant également XXX
Vous pouvez également faire le and
comme ceci:
awk '/^Residue.*XXX/' file