Usa quantificatore specificato in grep per recuperare il vocabolario soddisfatto

0

Provo a prendere le parole da un file:

$ grep -o '\*\*[^*]*\*\*' Principles_20_LifePrinciples.md | grep -v -e "Origin" -e "Etymology"
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**
**the state of feeling nervous or worried that sth bad is going to happen**
**a worry or fear about sth**
**a strong feeling of wanting to do sth or of wanting sth to happen**

Il risultato che intendo è ottenere solo parole:

**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**

Codice refactored con quantificatore specificato {,20} :

$ grep -E -o '\*\*[^*]{,20}\*\*' Principles_20_LifePrinciples.md

Purtroppo, non restituisce nulla.

Come risolvere un simile problema?

    
posta JawSaw 27.03.2018 - 07:59
fonte

2 risposte

2

Senza vedere il testo completo del file, would not:

grep -o '\*\*[a-zA-Z]*\*\*' file

lavoro?

    
risposta data 27.03.2018 - 13:07
fonte
1

La pagina man di re_format (7) dice, riguardo al costrutto delle parentesi:

A bound is { followed by an unsigned decimal integer, possibly followed by , possibly followed by another unsigned decimal integer, always followed by }.

Si noti che il primo intero non è opzionale!

In altre parole, se dici {0,20} invece di {, 20}, dovrebbe funzionare (almeno se "zero a venti" è ciò che vuoi!).

    
risposta data 27.03.2018 - 08:34
fonte

Leggi altre domande sui tag