GNU/Linux >> Znalost Linux >  >> Linux

Je možné použít grep k zachycení pouze celých slov?

 -w, --word-regexp
              Select  only  those  lines  containing  matches  that form whole
              words.  The test is that the matching substring must  either  be
              at  the  beginning  of  the  line,  or  preceded  by  a non-word
              constituent character.  Similarly, it must be either at the  end
              of  the  line  or  followed by a non-word constituent character.
              Word-constituent  characters  are  letters,  digits,   and   the
              underscore.

od man grep


Můžete také použít toto:

echo "this is the theater" |grep --color '\bthe\b'

Neboť jedno slovo je stejné s -w.
Pokud však potřebujete prohledat více vzorů, můžete použít \b, jinak budou všechny vzory považovány za slova, pokud je použito -w.

Například:

grep -w -e 'the' -e 'lock'

zvýrazní a lock, ale ne keylock/visací zámek atd.

Pomocí \b můžete s každým vzorem -e zacházet jinak.

Vyzkoušejte to zde.


Přítomnost začátku (resp. konce) slova můžete otestovat pomocí značky \< (resp. \> ).

Tedy,

grep "\<the\>" << .
the cinema
a cinema
the theater
a theater
breathe
.

dává

the cinema
the theater

Linux
  1. Je možné bezpečně použít `find -exec Sh -c`?

  2. Grep pro řádek obsahující pouze 5 nebo 6 čísel?

  3. Použít _roff k podtržení slov?

  1. Jak používat příkazy Grep na Linuxu nebo FreeBSD

  2. Použijte příkaz Linux grep

  3. V Linuxu je možné použít .dll

  1. Jak používat Linuxový příkaz grep

  2. grep odpovídá pouze řádkům v určeném rozsahu

  3. Grep v obrovském souboru protokolu (>14 GB) pouze posledních x GB?