GNU/Linux >> Linux Esercitazione >  >> Linux

Confuso riguardo al confine delle parole?

Ho cercato molto su questo, ma non sono ancora chiaro su di esso. Che cosa significa limite di parole significare? Cosa fa?

Quindi, per esempio, qualcuno potrebbe spiegarmi questo comando per favore?

egrep 'b[A-Z]+b' filename.sh

Risposta accettata:

Come descritto qui, ad esempio, corrisponde tra parole:

Esistono tre diverse posizioni che si qualificano come confini di parole:

  1. Prima del primo carattere nella stringa, se il primo carattere è un carattere di una parola.
  2. Dopo l'ultimo carattere nella stringa, se l'ultimo carattere è un carattere di una parola.
  3. Tra due caratteri nella stringa, dove uno è un carattere di una parola e l'altro non è un carattere di una parola.

Ecco alcuni esempi di ciascuno di questi casi:

  1. Per la stringa foobar , il primo caso corrisponde

     foobar
    ^-----here
    
  2. Per la stringa foobar , il secondo caso corrisponde

    foobar
          ^--here
    
  3. Per la stringa foo bar , il terzo caso corrisponderà

    foo bar
       ^--here, because space is not a word character
    

Ciò che si qualifica come carattere di una parola dipende dall'implementazione dell'espressione regolare specifica. In tutti i casi, tuttavia, le lettere ([a-z] e [A-Z] ), numeri ([0-9] ) e _ sono considerati caratteri di parole.

Quindi, l'espressione regolare di esempio che hai pubblicato (b[A-Z]+b ) significa trovare la stringa più lunga che si trova tra due limiti di parola e che consiste solo di lettere maiuscole. Potrebbe essere più facile spiegare con un esempio:

echo "FOOBAR" | egrep 'b[A-Z]+b'   # Works
echo "FOO BAR" | egrep 'b[A-Z]+b'  # Works
echo "aFOOBARb" | egrep 'b[A-Z]+b' # Does not work, we want capitals only
echo "12345" | egrep 'b[A-Za]+b'   # Does not work, no letters
echo "1FOOBAR2" | egrep 'b[A-Z]+b' # Does not work, 1 and 2 are word chars
echo "_FOOBAR_" | egrep 'b[A-Z]+b' # Does not work, _ is a word char
echo "#FOOBAR$" | egrep 'b[A-Z]+b' # Works, # and $ are not word chars

Linux
  1. C Tutorial di programmazione Parte 5 - Variabili di carattere

  2. Usare l'a capo automatico con Mc?

  3. A proposito di MySQL

  4. Ulteriori informazioni sui server cloud

  5. Non bloccante Ottieni carattere

[Recensione] Pear OS 8:è tutto sull'aspetto

Informazioni sulle immagini del Cloud Server

A proposito di regioni

Confuso su stdin, stdout e stderr?

Ascii esteso in Linux

Domande sull'ID utente salvato