Achọrọ m ịgwa gị maka otu ngwa ọchụchọ na-eme ka ndụ dị mfe. Mgbe m rutere na ihe nkesa na achọrọ m ịchọ ihe, ihe mbụ m na-eme bụ ịlele ma arụnyere ack. Ngwa a bụ ezigbo nnọchi maka grep, yana ịchọta na wc ruo n'ókè ụfọdụ. Gịnị kpatara na ọ bụghị grep? Ack nwere ntọala kachasị mma na igbe ahụ, nhọrọ ndị mmadụ nwere ike ịgụ, perl regex na sistemụ nhazi. Ọ bụrụ na-amasị gị (ga-emerịrị) chọọ site na njedebe, mgbe ahụ ị ga-anwale ya.
Atụmatụ ndị bụ isi
Ack na-emegharịghachi site na ndabara, na ide nhọrọ ole na ole na-abụkarị ezigbo echiche.
Anyị nwere ike iji ọkọlọtọ -wịgwa ndị ọrụ ka ọ chọọ ihe atụ nke ụkpụrụ anyị nke oke okwu gbara ya gburugburu (ọcha, slashes, wdg).
ack -w mysql
Ack na-akwado ịchọ site na ụdị faịlụ. Dịka ọmụmaatụ, ka anyị chọta ụdị modul na faịlụ json.
ack --json '"version":s+"d+.d+.d+"'
Enwere ike ịlele ndepụta ụdị faịlụ akwadoro site na iji:
ack --help-types
Ọtụtụ mgbe ị ga-achọ ịgụta ugboro ole akpaokwu pụtara na faịlụ ndekọ, dịka ọmụmaatụ, iji ghọta ole data edemede.
Anyị na-agụ ugboro ole usoro na-eme na faịlụ test.log, ọ bụghị na-eburu n'uche ikpe (-i).
Anyị nwere ike ịgụta ihe omume ọ bụghị naanị n'otu faịlụ akọwapụtara, mana n'otu. Ka anyị mechaa ọchụchọ gara aga maka okwu mysql: gụọ ọnụ ọgụgụ nke okwu pụtara (-m) na * .js faịlụ (--js), ewezuga faịlụ na-enweghị ihe ọ bụla achọtara (-h) na chịkọta nsonaazụ.
# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql
Na mgbakwunye, anyị nwere ike nweta akụkọ zuru ezu na ọnụọgụ ihe mere na faịlụ ọ bụla site na iji (-l)
ack --js -w -cl mysql
Ọ bụrụ na ịchọrọ nkọwa ọzọ maka ọchụchọ gị, ị nwere ike ịjụ ack
gosi ahịrị ruo (-B) na mgbe (-A) nke okwu a chọtara. Iji mee nke a, ịkwesịrị ịkọwapụta mgbe nhọrọ ahụ gasịrị ọnụọgụ ahịrị ndị kwesịrị igosi.
# 2 строки до
ack --js --column -B 2 "query.once('" ./lib/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
Ma ọ bụrụ na ịchọrọ ha abụọ, wee jiri (-NKORO)
ack --js --column -C 2 "query.once('" ./lib/
Enwekwara nhọrọ (-v) iji tụgharịa ọchụchọ ahụ, ya bụ gosi ahịrị ndị na-enweghị usoro enyere.
Okwu mgbe nile
Ack, n'adịghị ka grep, na-eji okwu dakọtara Perl.
Maka m nke a bụ nnukwu gbakwunyere; Achọghị m icheta syntax dị iche maka okwu mgbe niile.
ack 'vars+adds+'
Ihe atụ dị mgbagwoju anya
ack '*s+[vd+.d+.d+]'
Ọtụtụ mgbe, ịchọrọ ịhapụ nsonaazụ ya naanị ihe dabara na ndebiri. Nhọrọ --output ga-enyere aka ebe a (-o)
ack -o '*s+[vd+.d+.d+]'
Na mgbakwunye, iji akara aka anyị nwere ike họrọ akụkụ ahụ achọtara wee nweta ya na mmepụta site na mgbanwe $[otu]. Ọmụmaatụ,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Ack nwere nhọrọ bara uru --oke-mmalite и --oke-njedebe. Ha na-enyere aka mgbe
A naghị echekwa data ahụ n'otu ahịrị, kama n'ụdị ahịrị ọtụtụ.
Dịka ọmụmaatụ, enwere faịlụ nwere koodu sql
Ka anyị wepụ aha kọlụm. Mmalite nke ngọngọ ga-abụ ahịrị malite na SELECT, na njedebe ga-abụ ahịrị malite na FROM.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
Ọ bụrụ na okwu ọchụchọ ahụ nwere mkpụrụedemede pụrụ iche dị ka oge, akara aka, na ndị ọzọ, mgbe ahụ ka ị ghara ịgbanarị ha site na iji , ị nwere ike iji nhọrọ ahụ. -Q.
# Поиск с экранированием
ack --json 'mysql.'
# Поиск без экранирования
ack --json -Q mysql.
Na-arụ ọrụ na faịlụ
Nweta ndepụta faịlụ nwere ndọtị akọwapụtara
ack -f --js
Chọta faịlụ js niile aha ha na-amalite na P* site na iji nhọrọ (-g).
ack -g --js '/Pa.+.js$'
Nhazi
Utility nwere faịlụ nhazi nke ya. Ị nwere ike ịnwe ma nhazi zuru ụwa ọnụ maka onye ọrụ (~/.ackrc) na mpaghara mpaghara maka otu nchekwa (ịkwesịrị ịmepụta faịlụ .ackrc na nchekwa).
Ọtụtụ nhọrọ ndị edere na nhazi nwere ike iji aka kọwaa mgbe akpọrọ ya. Ka anyị leba anya n’ụfọdụ n’ime ha.
Gbanahụ folda mgbe ị na-achọ
--ignore-dir=dist
Ka anyị tinye ụdị faịlụ omenala -vue.
--type-add=vue:ext:js,vue
Ugbu a ị nwere ike iji nhọrọ --vue chọọ faịlụ .vue. Ọmụmaatụ: ngwa ngwa --vue.
Ị nwere ike ịkọwapụta ndepụta ndọtị maka nhọrọ a. Dịka ọmụmaatụ, ebe a, mgbe ị na-eji -vue, a ga-ahazi ihe ndị a: .js faịlụ.
Ileghara faịlụ anya, dịka ọmụmaatụ obere * .min.js
--ignore-file=match:/.min.js$/
ọnọdụ
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
Nwụnye site na saịtị ahụ
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
Ngwa mgbakwunye maka ndị ndezi:
nkwubi
Ihe ndị a abụghị ohere niile. Enwere ike ịlele ndepụta ọrụ niile site na ịgba ọsọ:
ack –-help
# или
ack --man
Utility ack na-enye gị ohere ime ka ịchọọ n'ọnụ ọnụ dị mfe yana mgbanwe. Na iji pipeline (ack -C 10 ndewo | ak uwa) ị nwere ike ịmepụta njikọ dị ike maka ịchọ na nzacha data na faịlụ faịlụ na faịlụ n'onwe ha.
isi: www.habr.com