GNU/Linux >> Linux Esercitazione >  >> Linux

grep:cattura di gruppo

Questo potrebbe funzionare per te:

echo '{"_id":"scheme_version","_rev":"4-cad1842a7646b4497066e09c3788e724","scheme_version":1234}' |
sed -n 's/.*"scheme_version":\([^}]*\)}/\1/p'
1234

Spiacente, non è grep , quindi ignora questa soluzione se lo desideri.

Oppure resta con grep e aggiungi:

grep -Eo "\"scheme_version\":(\w*)"| cut -d: -f2

Dovrai utilizzare un'asserzione look behind in modo che non sia inclusa nella corrispondenza:

grep -Po '(?<=scheme_version":)[0-9]+'


Linux
  1. Grep:Memoria esaurita?

  2. Grep -v Comportamento imprevisto?

  3. Verifica che uno script sia in esecuzione?

  4. Acquisizione eventi tastiera Linux /dev/inputX

  5. GNU Grep può produrre un gruppo selezionato?

Grep Regex:una guida completa

Come escludere in Grep

Espressioni regolari in Grep (Regex)

Comando Grep in Linux/UNIX

Come grep \n nel file

Usando grep vs awk