GNU/Linux >> Znalost Linux >  >> Linux

Jak pomocí rekurzivního Grepu vyloučit konkrétní řádek s „nechtěným“ a „chtěným“ slovem v něm?

Momentálně vytvářím své dotfiles a chci vypsat všechny TODO: ... komentáře v adresáři mého projektu, vytvořil jsem alias bash, abych to udělal:

 alias mytodo='grep --recursive "TODO: "'

Funguje to dobře, ale také vrací definici aliasu. toto je ukázkový výstup.

 [email protected]$ mytodo

 bash/profile.d/aliases/: alias mytodo='grep --recursive "TODO: "'
 bin/git_branch_status/: # TODO: Add checking of remote branch status.
 tools/setup/: # TODO: Add search for existing symlinks.

jak mohu konkrétně vyloučit tento řádek s definicí aliasu?

Přijatá odpověď:

Jedním ze způsobů, jak zabránit tomu, aby se regulární výraz shodoval, je uzavřít jeden znak do třídy znaků:

alias mytodo='grep --recursive "TOD[O]: "'

Alternativně (klobouček Stéphanu Chazelasovi) můžete uložit alias s extra uvozovkami ve vzoru:

alias mytodo='grep --recursive "TO''DO: "'

Poté řádek stále nebude nalezen, ale alias obsahuje původní vzor. To je užitečné, když chcete použít např. shoda s pevným řetězcem (grep -F ).


Linux
  1. Jak vytvořit databázi v MySQL pomocí příkazového řádku

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

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

  1. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  2. Práce s rourami na příkazovém řádku Linuxu

  3. Jak najít konkrétní text pomocí GREP v systému Linux

  1. Jak mohu přimět grep, aby vytiskl řádky pod a nad každým odpovídajícím řádkem?

  2. Jak nahradit obsah konkrétního sloupce awk?

  3. Jak najít konkrétní slovo a uchopit text