/tmp/myfile
first line text
wanted text
other text
příkaz
$ grep -n "wanted text" /tmp/myfile | awk -F ":" '{print $1}'
2
-n přepnout na grep připojí jakýkoli odpovídající řádek před číslo řádku (následuje : ), zatímco druhý příkaz používá dvojtečku jako oddělovač sloupců (-F ":" ) a vytiskne první sloupec libovolného řádku. Konečným výsledkem je seznam čísel řádků se shodou.
Kromě grep , můžete také použít další nástroje, jako je awk nebo sed
Zde je několik příkladů. Řekněme, že chcete vyhledat řetězec is v souboru s názvem GPL .
Váš ukázkový soubor
example@unixlinux.online:~$ cat -n GPL
1 The GNU General Public License is a free, copyleft license for
2 The licenses for most software and other practical works are designed
3 the GNU General Public License is intended to guarantee your freedom to
4 GNU General Public License for most of our software;
example@unixlinux.online:~$
1. grep
example@unixlinux.online:~$ grep is GPL
The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
example@unixlinux.online:~$
2. awk
example@unixlinux.online:~$ awk /is/ GPL
The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
example@unixlinux.online:~$
3. seda
example@unixlinux.online:~$ sed -n '/is/p' GPL
The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
example@unixlinux.online:~$
Doufám, že to pomůže
Obvyklým řešením je rodina příkazů grep (včetně egrep, fgrep).
$ grep pattern filename
Pokud hledáte zdrojový kód, pak může být lepší volbou potvrzení. Automaticky prohledá podadresáře a vyhne se souborům, které byste normálně neprohledávali (objekty, adresáře SCM atd.)
Obvyklý způsob, jak toho dosáhnout, je grep , který ke shodě řádků používá vzor regulárních výrazů:
grep 'pattern' file
Výstupem bude každý řádek, který odpovídá vzoru. Pokud chcete hledat pouze pevné řetězce, použijte grep -F 'pattern' file . fgrep je zkratka pro grep -F .
Můžete také použít sed :
sed -n '/pattern/p' file
Nebo awk :
awk '/pattern/' file