Quero falar sobre um utilitário de pesquisa que simplifica bastante a vida. Quando chego ao servidor e preciso procurar algo, a primeira coisa que faço é verificar se o ack está instalado. Este utilitário é um ótimo substituto para o grep, além de encontrar e wc, até certo ponto. Por que não grep? O Ack possui configurações mais agradáveis prontas para uso, opções mais legíveis por humanos, regulares do Perl e um sistema de configuração. Se você ama(tem que) pesquise no terminal, então você definitivamente deve experimentá-lo.
Funcionalidades básicas
Aceitar é recursivo por padrão, e escrever menos opções é sempre bom.
Podemos usar o sinalizador -w para dizer ao utilitário para procurar uma instância do nosso modelo, cercada por limites de palavras (caracteres de espaço em branco, uma barra, etc.).
ack -w mysql

O Ack suporta pesquisas de tipo de arquivo. Por exemplo, encontre a versão do módulo nos arquivos json.
ack --json '"version":\s+"\d+\.\d+\.\d+"'

Uma lista completa dos tipos de arquivos suportados pode ser encontrada em:
ack --help-types
Frequentemente, é necessário calcular quantas vezes uma frase ocorre em um arquivo de log, por exemplo, para entender quantos dados o script processou.

Contamos quantas vezes o processo ocorre no arquivo test.log, sem distinção entre maiúsculas e minúsculas ( -i ).
, . mysql: - (-) *.js (--js), (-h) .
ack --js -w mysql
ack --js -wch mysql

, - (-l)
ack --js -w -cl mysql

c, ack
(-B) (-A) . - , .
ack --js --column -B 2 "query.once\('" ./lib/

ack --js --column -A 2 "query.once\('" . /lib/

, (-)
ack --js --column -C 2 "query.once\('" ./lib/
(-v) , . .
Ack grep Perl .
, .
ack 'var\s+add\s+'

ack '\*\s+\[v\d+\.\d+\.\d+\]'

, . --output (-o)
ack -o '\*\s+\[v\d+\.\d+\.\d+\]'

, output $[ ]. ,
ack --output='version is $1' '\*\s+\[v(\d+\.\d+\.\d+)\]'

Ack --range-start --range-end. ,
, .
, sql

. SELECT, FROM.
ack --range-start ^SELECT --range-end ^FROM 't\d+\.' ./test.sql

, , \, -Q.
ack --json 'mysql\.'
ack --json -Q mysql.

ack -f --js

js P*, (-g).
ack -g --js '\/Pa.+.js$'

. (~/.ackrc), ( .ackrc).
, . .
--ignore-dir=dist
--vue.
--type-add=vue:ext:js,vue
--vue, .vue. : ack --vue App.
. , --vue .js .
, , *.min.js
--ignore-file=match:/\.min\.js$/
CentOS
yum update -y && yum install ack -y
Ubuntu
apt-get update -y && apt-get install ack-grep -y
Mac OS
brew update && brew install ack
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
:
. , :
ack –-help
ack --man
ack . pipeline (ack -C 10 hello | ack world) .