I sistemi operativi Linux offrono supporto per la ricerca di stringhe di testo specifiche sia nei file che nelle directory. Uno degli strumenti più comuni per cercare una stringa di testo è grep. Grep consente agli utenti di cercare qualsiasi modello con espressioni regolari all'interno di file e directory. Tuttavia, grep ha alcune limitazioni. È uno strumento generico senza alcuna ottimizzazione. È qui che lo strumento Ack può aiutare. Lo strumento Ack è progettato specificamente per gli sviluppatori per la ricerca del codice sorgente dei programmi. Lo strumento Ack è più veloce di grep e ci consente di escludere determinati output dai risultati di ricerca.
In questo post, ti mostreremo come installare e utilizzare il comando Ack in Linux.
Prerequisiti
- Un server che esegue Linux sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Crea server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo qualsiasi sistema operativo Linux con almeno 1 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Installa Ack in Linux
Per le distribuzioni basate su Debian e Ubuntu, installa lo strumento Ack utilizzando il comando seguente:
apt-get install ack-grep -y
Per le distribuzioni basate su RHEL, Fedora e CentOS, installa lo strumento Ack utilizzando il comando seguente:
dnf install ack-grep -y
Dopo l'installazione, verifica la versione Ack utilizzando il seguente comando:
ack --version
Otterrai il seguente output:
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.
Scarica il codice sorgente di Neovim
Per dimostrare come utilizzare il comando Ack, scaricheremo il codice sorgente di neovim dal repository Git.
Esegui il seguente comando per scaricare il sorgente di neovim:
git clone https://github.com/neovim/neovim.git
Una volta completato il download, cambia la directory nell'origine scaricata ed elenca tutti i file:
cd neovim ls neovim
Dovresti vedere tutti i file nel seguente output:
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
Cerca il numero totale di file nella directory
Puoi usare il comando Ack per scoprire quanti file ci sono all'interno del repository.
ack -f | wc -l
Otterrai il seguente risultato:
2899
Cerca uno schema di stringhe usando il comando Ack
Il comando Ack può cercare un modello specifico e trovare dati con corrispondenze parziali o complete.
Ad esempio, per cercare la stringa "restrict ” nel repository, esegui il seguente comando:
ack restrict
Otterrai il seguente risultato:
Cerca una parola con pattern di stringhe usando il comando Ack
Se vuoi vedere la corrispondenza esatta nel risultato, usa -w opzione:
ack -w restrict
Otterrai il seguente output:
Come puoi vedere, il comando Ack cerca restrict come una parola completa.
Cerca uno schema di stringa da un tipo di file specifico
Se vuoi cercare una stringa specifica in un tipo di file specifico, inclusi Python, C o Vim, puoi usare l'opzione –python, –c o –vim.
Ad esempio, per cercare una stringa "limita ” solo all'interno dei file Python, esegui il seguente comando:
ack -w --python restrict
Otterrai il seguente output:
Conta le occorrenze totali di una ricerca di stringhe
Se vuoi contare il numero totale di occorrenze di una stringa specificata, usa -c opzione con il comando Ack.
ack -c restrict
Otterrai il seguente output:
Se vuoi mostrare il numero totale di occorrenze di una stringa “restrict ” nell'output, esegui il comando seguente:
ack -ch restrict
Otterrai il seguente output:
232
Se vuoi controllare la velocità delle ricerche, esegui il seguente comando:
time ack -ch restrict
Otterrai il seguente output:
232 real 0m0.631s user 0m0.551s sys 0m0.076s
Cerca un tipo di file specifico
Il comando Ack può anche trovare i tipi di file specifici dalla directory specificata.
Ad esempio, per trovare tutti i file Python nella directory corrente, esegui il comando seguente:
ack -f --python
Otterrai tutti i file Python nel seguente output:
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
Conclusione
In questo post, abbiamo spiegato come installare e utilizzare il comando Ack in Linux. Ack è uno strumento di ricerca molto utile e flessibile per gli sviluppatori quando si gestiscono più progetti. Inizia subito con l'hosting VPS da Atlantic.Net!