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 inotsigira kutsvaga nemhando yefaira. Semuenzaniso, ngatitsvage iyo module mujson mafaera.
ack --json '"version":s+"d+.d+.d+"'
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.
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
Pamusoro pezvo, tinogona kuwana rondedzero yakadzama pamusoro pehuwandu hwezviitiko mufaira rega rega uchishandisa (-l)
ack --js -w -cl mysql
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/
# 2 ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅
ack --js --column -A 2 "query.once('" . /lib/
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+'
Muenzaniso wakaoma
ack '*s+[vd+.d+.d+]'
Kazhinji iwe unoda kusiya mumhedzisiro chete izvo zvinoenderana netemplate. Iyo --output sarudzo ichabatsira pano (-o)
ack -o '*s+[vd+.d+.d+]'
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 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
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
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.
Kushanda nemafaira
Tora runyoro rwemafaira ane imwe yekuwedzera
ack -f --js
Tsvaga mafaera ese ejs ane zita rinotanga naP* uchishandisa sarudzo (-g).
ack -g --js '/Pa.+.js$'
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