Ack dị mma karịa grep

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 dị mma karịa grep

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+"'

Ack dị mma karịa grep

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.

Ack dị mma karịa grep
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

Ack dị mma karịa grep

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

Ack dị mma karịa grep

Ọ 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/

Ack dị mma karịa grep

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

Ack dị mma karịa grep

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+'

Ack dị mma karịa grep

Ihe atụ dị mgbagwoju anya

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

Ack dị mma karịa grep

Ọ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+]'

Ack dị mma karịa grep

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 dị mma karịa grep

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

Ack dị mma karịa grep

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

Ack dị mma karịa grep

Ọ 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.

Ack dị mma karịa grep

Na-arụ ọrụ na faịlụ

Nweta ndepụta faịlụ nwere ndọtị akọwapụtara

ack -f --js

Ack dị mma karịa grep

Chọta faịlụ js niile aha ha na-amalite na P* site na iji nhọrọ (-g).

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

Ack dị mma karịa grep

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

Tinye a comment