ʻOi aku ka maikaʻi o Ack ma mua o grep

Makemake au e haʻi aku iā ʻoe e pili ana i kahi pono hana huli e maʻalahi ai koʻu ola. Ke komo au i loko o kahi kikowaena a pono e ʻimi i kahi mea, ʻo ka mea mua aʻu e hana ai, ʻo ia ke nānā inā ua hoʻokomo ʻia ʻo ack. He pani maikaʻi loa kēia pono hana no ka grep, a i kekahi ʻano, ʻo find a me wc. No ke aha ʻaʻole grep? Loaʻa iā Ack nā hoʻonohonoho maikaʻi aʻe ma waho o ka pahu, nā koho heluhelu kanaka, nā ʻōlelo maʻamau Perl, a me kahi ʻōnaehana hoʻonohonoho. Inā makemake ʻoe (a i ʻole pono) e ʻimi ma o ka terminal, pono ʻoe e hoʻāʻo.

Nā hiʻohiʻona kumu

He recursive ʻo Ack ma ka paʻamau, a he mea maikaʻi mau ka kākau ʻana i nā koho liʻiliʻi.

Hiki iā mākou ke hoʻohana i ka hae -we haʻi i ka pono e nānā i kahi hiʻohiʻona o kā mākou ʻano i hoʻopuni ʻia e nā palena huaʻōlelo (nā hakahaka, nā ʻoki liʻiliʻi, a pēlā aku).

ack -w mysql

ʻOi aku ka maikaʻi o Ack ma mua o grep

Kākoʻo ʻo Ack i ka ʻimi ʻana ma ke ʻano faila. Eia kekahi laʻana, e ʻimi kākou i ka mana module i loko o nā faila JSON.

ack --json '"version":s+"d+.d+.d+"'

ʻOi aku ka maikaʻi o Ack ma mua o grep

Hiki ke loaʻa kahi papa inoa piha o nā ʻano faila i kākoʻo ʻia ma:

ack --help-types

Pono pinepine e helu i ka nui o nā manawa e ʻike ʻia ai kahi huaʻōlelo ma kahi faila log, no ka laʻana, e hoʻomaopopo i ka nui o ka ʻikepili i hana ʻia e kahi script.

ʻOi aku ka maikaʻi o Ack ma mua o grep
Helu mākou i ka nui o nā manawa e ʻike ʻia ai ke kaʻina hana ma ka faila test.log, me ka nānā ʻole i ka hihia (-i).

Hiki iā kākou ke helu i nā hanana ʻaʻole wale ma kahi faila kikoʻī, akā ma kahi hui. E hoʻomaʻemaʻe kākou i ka ʻimi mua no ka huaʻōlelo mysql: e helu kākou i ka helu o nā hanana o nā huaʻōlelo () ma nā faila *.js(—js), koe naʻe nā faila i loaʻa ʻole ai kekahi mea (-h) a hōʻuluʻulu i ka hopena.

# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql

ʻOi aku ka maikaʻi o Ack ma mua o grep

Eia kekahi, hiki iā mākou ke loaʻa kahi hōʻike kikoʻī e pili ana i ka helu o nā hanana i kēlā me kēia faila me ka hoʻohana ʻana i (-l)

ack --js -w -cl mysql

ʻOi aku ka maikaʻi o Ack ma mua o grep

Inā makemake ʻoe i kahi pōʻaiapili hou aʻe no kāu hulina, hiki iā ʻoe ke noi no ke noi ʻana
hōʻike i nā laina ma mua o (-B) a ma hope (-A) o ka hōʻike i loaʻa. No ka hana ʻana i kēia, e kuhikuhi i ka helu o nā lālani e hōʻike ma hope o ke koho.

# 2 строки до 
ack --js --column -B 2 "query.once('" ./lib/

ʻOi aku ka maikaʻi o Ack ma mua o grep

# 2 строки после 
ack --js --column -A 2 "query.once('" . /lib/

ʻOi aku ka maikaʻi o Ack ma mua o grep

A inā pono ʻoe i nā mea ʻelua, a laila e hoʻohana i (-FROMA)

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

Aia kekahi koho (-v) e hoʻohuli i ka hulina, i.e. hōʻike i nā laina i loaʻa ʻole kahi ʻano i hāʻawi ʻia.

Hōʻike maʻamau

ʻAʻole like ʻo Ack me grep, hoʻohana ʻo ia i nā hōʻike kūlike me Perl.
Noʻu, he mea nui kēia; ʻaʻole pono iaʻu e hoʻomanaʻo i ke ʻano hana like ʻole no nā huaʻōlelo maʻamau.

ack 'vars+adds+'

ʻOi aku ka maikaʻi o Ack ma mua o grep

ʻOi aku ka laʻana paʻakikī

ack '*s+[vd+.d+.d+]'

ʻOi aku ka maikaʻi o Ack ma mua o grep

Makemake pinepine ʻoe e mālama wale i nā mea e kūlike me kahi ʻano ma nā hualoaʻa. ʻO ke koho --output (-o)

ack -o '*s+[vd+.d+.d+]'

ʻOi aku ka maikaʻi o Ack ma mua o grep

Eia kekahi, me ka hoʻohana ʻana i nā pale hiki iā mākou ke koho i ka ʻāpana i loaʻa a komo iā ia i loko o ka hopena ma o ka loli $[group number]. No ka laʻana,

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

ʻOi aku ka maikaʻi o Ack ma mua o grep

Loaʻa iā Ack nā koho pono —hoʻomaka-paepae и —ʻaoʻao-hopenaKōkua lākou i ka wā
ʻAʻole mālama ʻia ka ʻikepili ma ka laina hoʻokahi, akā ma ke ʻano he nui.

Eia kekahi laʻana, aia kahi faila me ke code SQL

ʻOi aku ka maikaʻi o Ack ma mua o grep

E unuhi kākou i nā inoa kolamu. E hoʻomaka ka poloka me ka laina e hoʻomaka ana me SELECT, a e hoʻopau me ka laina e hoʻomaka ana me FROM.

ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql

ʻOi aku ka maikaʻi o Ack ma mua o grep

Inā loaʻa i ka huaʻōlelo hulina nā huapalapala kūikawā e like me nā kiko, nā pale, a me nā mea ʻē aʻe, a laila i mea e pale aku ai i ka pakele ʻana iā lākou me , hiki iā ʻoe ke hoʻohana i ke koho -Q.

# Поиск с экранированием 
ack --json 'mysql.'    
# Поиск без экранирования
ack --json -Q mysql.

ʻOi aku ka maikaʻi o Ack ma mua o grep

Ke hana nei me nā faila

E kiʻi i kahi papa inoa o nā faila me kahi hoʻonui kikoʻī

ack -f --js

ʻOi aku ka maikaʻi o Ack ma mua o grep

E huli i nā faila js āpau nona ka inoa e hoʻomaka ana me P* me ka hoʻohana ʻana i ke koho(-g).

ack -g --js '/Pa.+.js$'

ʻOi aku ka maikaʻi o Ack ma mua o grep

Kauoa

Loaʻa i ka pono hana kāna faila hoʻonohonoho ponoʻī. Hiki iā ʻoe ke loaʻa kahi faila hoʻonohonoho honua no ka mea hoʻohana (~/.ackrc) a i ʻole kahi faila hoʻonohonoho kūloko no kahi waihona kikoʻī (pono ʻoe e hana i kahi faila .ackrc i loko o ka waihona).

Hiki ke hoʻonohonoho lima ʻia ka hapa nui o nā koho i kuhikuhi ʻia i loko o nā faila hoʻonohonoho i ka wā holo. E nānā kākou i kekahi o lākou.

E hoʻowahāwahā i ka waihona i ka wā e ʻimi ana

--ignore-dir=dist

E hoʻohui kākou i kahi ʻano faila maʻamau —vue.

--type-add=vue:ext:js,vue

Hiki iā ʻoe ke hoʻohana i ke koho --vue e ʻimi i nā faila. .vue. Eia kekahi laʻana: polokalamu ack —vue.
Hiki iā ʻoe ke kuhikuhi i kahi papa inoa o nā hoʻonui no kēia koho. No ka laʻana, ʻo ka hoʻohana ʻana iā --vue e hana pū kekahi
nā faila .js.

E hoʻowahāwahā i nā faila e like me ka *.min.js i hoʻemi ʻia

--ignore-file=match:/.min.js$/

Kāu Mau Koho Paʻamau

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

Ke hoʻouka ʻana mai ka pūnaewele

curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack

Nā Plugins no nā mea hoʻoponopono:

hopena

He mau hiʻohiʻona wale nō kēia. Hiki ke loaʻa kahi papa inoa piha o nā hana ma ka holo ʻana:

ack –-help
# или
ack --man

ʻOi aku ka maʻalahi a me ka maʻalahi o ka hana ack i ka ʻimi ʻana ma ke kikowaena. A me ke kōkua o ka pipeline (ack -C 10 aloha | ack honua) hiki iā ʻoe ke hana i kahi hui ikaika no ka ʻimi ʻana a me ke kānana ʻana i ka ʻikepili ma ka ʻōnaehana faila a ma nā faila ponoʻī.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka