Ja, det er muligt at bruge GNU grep til at få en matchet gruppe fra et udtryk, men det kræver en lidt anderledes tilgang, da GNU grep ikke direkte understøtter udtrækning af grupper som nogle andre værktøjer gør. Her er nogle metoder til at opnå dette:
-P
.-o
flaget til at udtrække den matchede del af udtrykket.echo "foo 'bar'" | grep -oP "(?<=foo ')[^']+(?=')"
echo "foo 'bar'" | grep -oP "(?<=foo ')[^']+(?=')"
sed
eller awk
være mere passende.sed
: echo "foo 'bar'" | sed -n "s/foo '\([^']*\)'/\1/p"
awk
: echo "foo 'bar'" | awk -F"'" '{print $2}'
Selvom GNU grep kan bruges til at udtrække matchede grupper, kan det være mere effektivt at bruge værktøjer, der er designet til denne type opgaver, afhængigt af kompleksiteten af dit behov.
Med Handyhand kan du nemt få hjælp til tekstbehandling og kodning. Opret din opgave gratis, og modtag bud fra dygtige freelancere på få minutter. Uanset om du har brug for korrektur, formatering eller programmeringshjælp, er Handyhand din løsning.