Ack iri nani pane grep

Ndinoda kukuudza nezve imwe yekutsvaga yekushandisa iyo inorerutsa zvakanyanya hupenyu. Kana ndasvika kune sevha uye ndinoda kutsvaga chimwe chinhu, chinhu chekutanga chandinoita kutarisa kana ack yakaiswa. Ichi chishandiso chakanakisa kutsiva grep, pamwe nekuwana uye wc kune imwe nhanho. Sei kwete grep? Ack ine zvigadziriso zvakanaka kunze kwebhokisi, dzimwe sarudzo dzinoverengeka nevanhu, perl regex uye config system. Kana iwe uchida (unofanirwa) kutsvaga kuburikidza neiyo terminal, saka iwe unofanirwa kuiedza.

Basic Features

Ack inodzokororwa nekukasira, uye kunyora mashoma sarudzo inogara iri zano rakanaka.

Tinogona kushandisa mureza -wkuudza zvinoshandiswa kutsvaga muenzaniso wepateni yedu yakakomberedzwa nemiganhu yemazwi (whitespace, slashes, nezvimwewo).

ack -w mysql

Ack iri nani pane grep

Ack inotsigira kutsvaga nemhando yefaira. Semuenzaniso, ngatitsvage iyo module mujson mafaera.

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

Ack iri nani pane grep

Rondedzero yakazara yemhando dzefaira dzinotsigirwa inogona kutariswa uchishandisa:

ack --help-types

Kazhinji iwe unofanirwa kuverenga kuti kangani mutsara unoonekwa mufaira regi, semuenzaniso, kuti unzwisise kuti yakawanda sei data iyo script yakagadziriswa.

Ack iri nani pane grep
Isu tinoverenga kuti kangani maitiro anoitika muye test.log faira, tisingatarise nyaya (-i).

Tinogona kuverenga zviitiko kwete mufaira rimwe chete, asi muboka. Ngatipedzise kutsvaga kwekare kwezwi rokuti mysql: kuverenga nhamba yekuitika kwemazwi (-с) mu *.js mafaira(--js), kusasanganisa mafaera asina chakawanikwa (-h) uye muchidimbu chigumisiro.

# Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран всС вхоТдСния
ack --js -w mysql
# считаСм ΠΎΠ±Ρ‰ΡƒΡŽ сумму Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ
ack --js -wch mysql

Ack iri nani pane grep

Pamusoro pezvo, tinogona kuwana rondedzero yakadzama pamusoro pehuwandu hwezviitiko mufaira rega rega uchishandisa (-l)

ack --js -w -cl mysql

Ack iri nani pane grep

Kana iwe uchida mamwe mamiriro ekutsvaga kwako, unogona kubvunza ack
ratidza mitsetse kusvika (-B) uye shure (-A) yeshoko rinowanikwa. Kuti uite izvi, unofanirwa kutsanangura mushure mesarudzo nhamba yemitsara inoda kuratidzwa.

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

Ack iri nani pane grep

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

Ack iri nani pane grep

Uye kana uchida ese ari maviri, shandisa (-IYE)

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

Pane zvakare sarudzo (-v) kutenderedza tsvakiridzo, kureva ratidza mitsetse isina patani yakapihwa.

Nguva dzose kutaura

Ack, kusiyana negrep, inoshandisa Perl mazwi anoenderana.
Kwandiri ichi chinhu chikuru chekuwedzera; ini handifanire kuyeuka syntax yakaparadzana yenguva dzose mataurirwo.

ack 'vars+adds+'

Ack iri nani pane grep

Muenzaniso wakaoma

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

Ack iri nani pane grep

Kazhinji iwe unoda kusiya mumhedzisiro chete izvo zvinoenderana netemplate. Iyo --output sarudzo ichabatsira pano (-o)

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

Ack iri nani pane grep

Mukuwedzera, tichishandisa maparentheses tinogona kusarudza chikamu chakawanikwa uye kuchiwana mune zvakabuda kuburikidza ne $[nhamba yeboka] yakasiyana. Semuyenzaniso,

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

Ack iri nani pane grep

Ack ine sarudzo dzinobatsira --range-start ΠΈ --range-kuguma. Vanobatsira kana
Iyo data inochengetwa kwete mumutsara mumwe, asi mune yakawanda-mutsara fomu.

Semuenzaniso, kune faira ine sql kodhi

Ack iri nani pane grep

Ngatitorei mazita emakoramu. Kutanga kwechivharo kuchava mutsara unotanga ne SELECT, uye kuguma kuchava mutsara unotanga FROM.

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

Ack iri nani pane grep

Kana izwi rekutsvaga riine mavara akakosha senge nguva, mutsara, uye mamwe, saka kuti usavatiza uchishandisa, unogona kushandisa sarudzo. -Q.

# Поиск с экранированиСм 
ack --json 'mysql.'    
# Поиск Π±Π΅Π· экранирования
ack --json -Q mysql.

Ack iri nani pane grep

Kushanda nemafaira

Tora runyoro rwemafaira ane imwe yekuwedzera

ack -f --js

Ack iri nani pane grep

Tsvaga mafaera ese ejs ane zita rinotanga naP* uchishandisa sarudzo (-g).

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

Ack iri nani pane grep

Kugadziriswa

Iyo yekushandisa ine yayo config file. Iwe unogona kuva nezvose zvepasi rose config yemushandisi (~/.ackrc) uye yemunharaunda kune chaiyo folda (unoda kugadzira .ackrc faira mufolda).

Mazhinji esarudzo akanyorwa mumagadzirirwo anogona kutaurwa nemaoko kana adaidzwa. Ngatitarisei zvishoma zvacho.

Rega folda paunenge uchitsvaga

--ignore-dir=dist

Ngatiwedzerei yakasarudzika faira mhando -vue.

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

Iye zvino unogona kushandisa iyo --vue sarudzo yekutsvaga mafaera .vue. Semuyenzaniso: ack --vue App.
Iwe unogona kutsanangura runyoro rwezvekuwedzerwa kweiyi sarudzo. Semuenzaniso, pano, kana uchishandisa -vue, zvinotevera zvichagadziriswa:
.js mafaira.

Rega mafaira, semuenzaniso minified *.min.js

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

Kuiswa

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

Kuiswa kubva panzvimbo

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

Plugins evapepeti:

mhedziso

Izvi hazvisi zvese zvinogoneka. Rondedzero yakazara yemabasa inogona kutariswa nekumhanya:

ack –-help
# ΠΈΠ»ΠΈ
ack --man

Iyo ack utility inobvumidza iwe kuita kuti kutsvaga mune terminal kuve nyore uye kuchinjika. Uye kushandisa pombi (ack -C 10 mhoro | ack nyika) unogona kugadzira musanganiswa une simba wekutsvaga uye kusefa data mufaira system uye mumafaira pachawo.

Source: www.habr.com

Voeg