Quiero hablar sobre una utilidad de búsqueda que simplifica enormemente la vida. Cuando llego al servidor y necesito buscar algo, lo primero que hago es verificar si ack está instalado. Esta utilidad es un gran reemplazo para grep, así como find y wc hasta cierto punto. ¿Por qué no grep? Ack tiene configuraciones más bonitas de fábrica, más opciones legibles para los humanos, clientes habituales y un sistema de configuración. Si amas(Tiene que) busca a través del terminal, entonces definitivamente deberías probarlo.
Caracteristicas basicas
Ack es recursivo por defecto, y escribir menos opciones siempre es bueno.
Podemos usar la bandera -w para indicarle a la utilidad que busque una instancia de nuestra plantilla, rodeada de límites de palabras (espacios en blanco, una barra diagonal, etc.).
ack -w mysql

Ack admite búsquedas de tipo de archivo. Por ejemplo, busque la versión del módulo en archivos json.
ack --json '"version":\s+"\d+\.\d+\.\d+"'

Puede encontrar una lista completa de los tipos de archivos compatibles con:
ack --help-types
A menudo es necesario calcular cuántas veces aparece una frase en un archivo de registro, por ejemplo, para comprender cuántos datos procesó el script.

Contamos cuántas veces ocurre el proceso en el archivo test.log, no distingue entre mayúsculas y 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) .