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
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+"'
Hiki ke loaʻa kahi papa inoa piha o nā ʻano faila i kākoʻo ʻia ma:
ack --help-typesPono 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.
![]()
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
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
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/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
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 laʻana paʻakikī
ack '*s+[vd+.d+.d+]'
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+]'
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+)]'
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

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
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.
Ke hana nei me nā faila
E kiʻi i kahi papa inoa o nā faila me kahi hoʻonui kikoʻī
ack -f --js
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$'
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=distE hoʻohui kākou i kahi ʻano faila maʻamau —vue.
--type-add=vue:ext:js,vueHiki 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 -yUbuntu
apt-get update -y && apt-get install ack-grep -yMac OS
brew update && brew install ackKe hoʻouka ʻana mai ka pūnaewele
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ackNā 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
