Operační systémy Linux nabízejí podporu pro vyhledávání konkrétních textových řetězců jak v souborech, tak v adresářích. Jedním z nejběžnějších nástrojů pro vyhledávání textového řetězce je grep. Grep umožňuje uživatelům vyhledávat jakýkoli vzor s regulárními výrazy v souborech a adresářích. Nicméně grep má určitá omezení. Je to univerzální nástroj bez jakékoli optimalizace. Zde může pomoci nástroj Ack. Nástroj Ack je speciálně navržen pro vývojáře pro vyhledávání zdrojového kódu programů. Nástroj Ack je rychlejší než grep a umožňuje nám vyloučit určité výstupy z výsledků vyhledávání.
V tomto příspěvku vám ukážeme, jak nainstalovat a používat příkaz Ack v Linuxu.
Předpoklady
- Server se systémem Linux na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a vyberte libovolný operační systém Linux s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Nainstalovat Ack v Linuxu
U distribucí založených na Debianu a Ubuntu nainstalujte nástroj Ack pomocí následujícího příkazu:
apt-get install ack-grep -y
U distribucí založených na RHEL, Fedora a CentOS nainstalujte nástroj Ack pomocí následujícího příkazu:
dnf install ack-grep -y
Po instalaci ověřte verzi Ack pomocí následujícího příkazu:
ack --version
Získáte následující výstup:
ack 2.22 Running under Perl 5.26.1 at /usr/bin/perl Copyright 2005-2017 Andy Lester. This program is free software. You may modify or distribute it under the terms of the Artistic License v2.0.
Stáhněte si zdrojový kód Neovim
Abychom předvedli, jak používat příkaz Ack, stáhneme si zdrojový kód neovim z úložiště Git.
Spusťte následující příkaz ke stažení zdroje neovim:
git clone https://github.com/neovim/neovim.git
Po dokončení stahování změňte adresář na stažený zdroj a vypište všechny soubory:
cd neovim ls neovim
Měli byste vidět všechny soubory v následujícím výstupu:
BACKERS.md CMakeLists.txt CONTRIBUTING.md man scripts third-party BSDmakefile codecov.yml LICENSE.txt packaging snap unicode ci config MAINTAIN.md README.md src cmake contrib Makefile runtime test
Vyhledejte celkový počet souborů v adresáři
Pomocí příkazu Ack můžete zjistit, kolik souborů je v úložišti.
ack -f | wc -l
Získáte následující výsledek:
2899
Vyhledejte vzor řetězce pomocí příkazu Ack
Příkaz Ack může vyhledat konkrétní vzor a najít data, která mají buď částečnou nebo úplnou shodu.
Chcete-li například vyhledat řetězec „restrict ” v úložišti spusťte následující příkaz:
ack restrict
Získáte následující výsledek:
Vyhledejte slovo se vzorem řetězce pomocí příkazu Ack
Pokud chcete ve výsledku vidět přesnou shodu, použijte -w možnost:
ack -w restrict
Získáte následující výstup:
Jak vidíte, příkaz Potvrdit hledá omezit jako úplné slovo.
Vyhledání vzoru řetězce z určitého typu souboru
Pokud chcete vyhledat konkrétní řetězec v konkrétním typu souboru, včetně Pythonu, C nebo Vim, můžete použít volbu –python, –c nebo –vim.
Chcete-li například vyhledat řetězec „restrict ” pouze v souborech Python spusťte následující příkaz:
ack -w --python restrict
Získáte následující výstup:
Spočítat celkový počet výskytů hledání řetězce
Pokud chcete spočítat celkový počet výskytů zadaného řetězce, použijte -c pomocí příkazu Ack.
ack -c restrict
Získáte následující výstup:
Pokud chcete zobrazit celkový počet výskytů řetězce „omezit ” ve výstupu spusťte následující příkaz:
ack -ch restrict
Získáte následující výstup:
232
Pokud chcete zkontrolovat rychlost vyhledávání, spusťte následující příkaz:
time ack -ch restrict
Získáte následující výstup:
232 real 0m0.631s user 0m0.551s sys 0m0.076s
Vyhledejte konkrétní typ souboru
Příkaz Ack může také najít konkrétní typy souborů ze zadaného adresáře.
Chcete-li například najít všechny soubory Pythonu ve vašem aktuálním adresáři, spusťte následující příkaz:
ack -f --python
Všechny soubory Pythonu získáte v následujícím výstupu:
src/clint.py src/nvim/testdir/pyxfile/py2_magic.py src/nvim/testdir/pyxfile/py3_magic.py src/nvim/testdir/pyxfile/py3_shebang.py src/nvim/testdir/pyxfile/pyx.py src/nvim/testdir/pyxfile/py2_shebang.py src/nvim/testdir/test_makeencoding.py contrib/gdb/nvim-gdb-pretty-printers.py contrib/YouCompleteMe/ycm_extra_conf.py scripts/stripdecls.py scripts/gen_help_html.py scripts/check-includes.py scripts/shadacat.py scripts/gen_vimdoc.py
Závěr
V tomto příspěvku jsme vysvětlili, jak nainstalovat a používat příkaz Ack v Linuxu. Ack je velmi užitečný a flexibilní vyhledávací nástroj pro vývojáře při práci s více projekty. Začněte nyní s VPS hostingem od Atlantic.Net!