GNU/Linux >> Znalost Linux >  >> Linux

Jak hledat přesné slovo, pokud má řetězec v sobě tečku

Musíte uniknout. (tečka), protože ve výchozím nastavení se shoduje s jakýmkoli znakem, a zadejte -w, aby odpovídalo konkrétnímu slovu, např.

grep -w -l "BML\.I" *

Všimněte si, že ve výše uvedeném jsou dvě úrovně úniku. Uvozovky zajišťují, že shell projde BML\.I do grep. \ pak escapuje tečku pro grep . Pokud vynecháte uvozovky, pak shell interpretuje \ jako escapování pro tečku (a jednoduše by předal neuskokanovanou tečku do grep )


zkuste grep -wF

z manuálové stránky:

 -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.



 -F, --fixed-strings
              Interpret  PATTERN as a list of fixed strings, separated by newlines, any
              of which is to be matched.  (-F is specified by POSIX.)

Linux
  1. Jak zvýraznit slovo ve výstupu „kočka“?

  2. Linux – Jak vědět, co dělat Grep v Dmesg?

  3. Jak se dostat do obsahu řetězcové proměnné?

  1. Jak zadat více mezer pro oddělovač pomocí řezu?

  2. Jak převést řetězec na celé číslo v UNIXu

  3. Jak odstranit předponu slova pomocí grep?

  1. Linux – Jak šáhnout po konkrétním slovu a uchopit text?

  2. Jak mohu grep rekurzivně filtrovat názvy souborů, které chci, pomocí zástupných znaků?

  3. Jak hledat slovo v celém obsahu adresáře v linuxu