GNU/Linux >> Znalost Linux >  >> Linux

Čtení Grepových vzorů ze souboru?

Mám několik velkých textových souborů a v souboru UNIQS.txt Mám seznam řetězců pro grep z jiného souboru. Kód, který používám, je

grep -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

který nic nedělá – vygenerovaný soubor je prázdný. Ale když to udělám

grep -F -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

funguje správně. To mě mate, protože jsem si nemyslel, že grep by interpretoval položky v UNIQS.txt jako vzory regulárních výrazů bez uvozovek a lomítek a tak dále, které jsou v souboru (které tam nejsou). Je to obecně tak, že když získáváte vzory ze souboru, bude si automaticky myslet, že jde o vzory regulárních výrazů?

Upravit: V UNIQS.txt soubor, jsou zde řetězce formuláře oddělené novým řádkem

HWI-ST365:215:D0GH0ACXX:2:1101:10034:186783

(nazývané názvy šablon) a soubor EEP_VSL... sloupce oddělené tabulátory, s asi 14 sloupci a první sloupec je název šablony, takže v podstatě chci extrahovat řádek odpovídající každé šabloně v souboru.

Přijatá odpověď:

-f volba určuje soubor, kde grep čte vzory. Je to jako předávání vzorů na příkazovém řádku (s -e možnost, pokud je jich více než jeden), kromě toho, že když voláte z shellu, možná budete muset uvozovat vzor, ​​abyste v něm chránili speciální znaky před rozbalením shellem.

Argument -E nebo -F nebo -P , pokud existuje, říká grep, ve které syntaxi jsou vzory zapsány. Bez argumentu grep očekává základní regulární výrazy; s -E , grep očekává rozšířené regulární výrazy; s -P (pokud je podporováno), grep očekává regulární výrazy Perlu; a s -F , grep očekává doslovné řetězce. Nezáleží na tom, zda vzory pocházejí z příkazového řádku nebo ze souboru.

Všimněte si, že řetězce jsou podřetězce:pokud předáte a+b jako vzor pak řádek obsahující a+b+c se shoduje. Pokud chcete hledat řádky obsahující přesně jeden z dodaných řetězců a ne více, předejte -x možnost.


Linux
  1. Tisknout čáry mezi (a včetně) dvěma vzory?

  2. Jak odstranit „binární data“ z textového souboru (např. Bash_history)?

  3. Vytvořit data pro čtení textu ze souboru?

  1. Čtení řádků ze souboru s Bash:For vs. Zatímco?

  2. Čtení souboru CSV s SQL dotazy z linuxového shellu

  3. Vytvořte PEM ze souboru PPK

  1. Jak se install -c liší od cp

  2. Linux - grep od určitých řádků až do konce souboru

  3. grep dvojice vzorů a souboru