Ndikufuna ndikuuzeni za chinthu chimodzi chofufuzira chomwe chimapangitsa moyo kukhala wosalira zambiri. Ndikafika ku seva ndipo ndikufunika kuyang'ana chinachake, chinthu choyamba chimene ndimachita ndikuyang'ana ngati ack yaikidwa. Izi ndizofunikira kwambiri m'malo mwa grep, komanso kupeza ndi wc kumlingo wina. Bwanji osakhala grep? Ack ali ndi makonda abwino kwambiri m'bokosilo, zosankha zambiri zowerengeka ndi anthu, perl regex ndi config system. Ngati mukufuna (muyenera) kufufuza kudzera pa terminal, ndiye kuti muyenera kuyesa.
Basic Features
Ack ndiyobwerezabwereza, ndipo kulemba zosankha zochepa nthawi zonse ndi lingaliro labwino.
Tikhoza kugwiritsa ntchito mbendera -wkuwuza zofunikira kuti ziyang'ane chitsanzo cha chitsanzo chathu chozunguliridwa ndi malire a mawu (whitespace, slashes, etc.).
ack -w mysql
Ack imathandizira kusaka ndi mtundu wa fayilo. Mwachitsanzo, tiyeni tipeze mtundu wa module mumafayilo a json.
ack --json '"version":s+"d+.d+.d+"'
Mndandanda wathunthu wamafayilo othandizidwa ukhoza kuwonedwa pogwiritsa ntchito:
ack --help-types
Nthawi zambiri muyenera kuwerenga kangati mawu akuwonekera mu fayilo ya chipika, mwachitsanzo, kuti mumvetsetse kuchuluka kwa deta yomwe script idakonzedwa.
Timawerengera kangati ndondomeko imapezeka mu fayilo ya test.log, osaganiziranso nkhani (-i).
Titha kuwerengera zochitika osati mufayilo imodzi yokha, komanso pagulu. Tiyeni titsirize kusaka kwa liwu la mysql: kuwerengera kuchuluka kwa mawu (-Ndi) mu *.js mafayilo (--js), kupatula mafayilo omwe sanapezeke (-h) ndi kufotokoza mwachidule zotsatira.
# Π²ΡΠ²Π΅Π΄Π΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ΅ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ
ack --js -w mysql
# ΡΡΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΡΡ ΡΡΠΌΠΌΡ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ
ack --js -wch mysql
Kuphatikiza apo, titha kupeza lipoti latsatanetsatane la kuchuluka kwa zomwe zimachitika mufayilo iliyonse pogwiritsa ntchito (-l)
ack --js -w -cl mysql
Ngati mukufuna zina zowonjezera pakufufuza kwanu, mutha kufunsa ack
kuwonetsa mizere mpaka (-B) ndipo pambuyo (-A) mwa mawu opezeka. Kuti muchite izi, muyenera kufotokoza pambuyo pa chisankho chiwerengero cha mizere yomwe ikuyenera kuwonetsedwa.
# 2 ΡΡΡΠΎΠΊΠΈ Π΄ΠΎ
ack --js --column -B 2 "query.once('" ./lib/
# 2 ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅
ack --js --column -A 2 "query.once('" . /lib/
Ndipo ngati mukufuna zonse ziwiri, gwiritsani ntchito (-C)
ack --js --column -C 2 "query.once('" ./lib/
Palinso njira (-v) kutembenuza kusaka, mwachitsanzo, onetsani mizere yomwe ilibe dongosolo loperekedwa.
Mawu okhazikika
Ack, mosiyana ndi grep, amagwiritsa ntchito mawu ogwirizana ndi Perl.
Kwa ine ichi ndi chowonjezera chachikulu; sindiyenera kukumbukira mawu osiyana a mawu okhazikika.
ack 'vars+adds+'
Chitsanzo chovuta kwambiri
ack '*s+[vd+.d+.d+]'
Nthawi zambiri mukufuna kusiya muzotsatira zomwe zikufanana ndi template. Njira ya --output ithandiza apa (-o)
ack -o '*s+[vd+.d+.d+]'
Kuonjezera apo, pogwiritsa ntchito mabatani tikhoza kusankha gawo lopezeka ndikulipeza muzotulutsa kudzera mu $[nambala yamagulu]. Mwachitsanzo,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Ack ali ndi zosankha zothandiza --kuyamba-kuyambira ΠΈ --njira-mapeto. Iwo amathandiza pamene
Deta imasungidwa osati pamzere umodzi, koma mumitundu yambiri.
Mwachitsanzo, pali fayilo yokhala ndi sql code
Tiyeni titengepo mayina a mgawo. Chiyambi cha chipikacho chidzakhala mzere woyambira ndi SELECT, ndipo mapeto adzakhala mzere kuyambira FROM.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
Ngati mawu osaka ali ndi zilembo zapadera monga nthawi, mapologalamu, ndi ena, ndiye kuti musawathawe pogwiritsa ntchito, mutha kugwiritsa ntchito mwayiwu. -Q.
# ΠΠΎΠΈΡΠΊ Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ack --json 'mysql.'
# ΠΠΎΠΈΡΠΊ Π±Π΅Π· ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ack --json -Q mysql.
Kugwira ntchito ndi mafayilo
Pezani mndandanda wamafayilo okhala ndi zowonjezera zina
ack -f --js
Pezani mafayilo onse a js omwe dzina lawo limayamba ndi P* pogwiritsa ntchito njirayo (-g).
ack -g --js '/Pa.+.js$'
Kukhazikika
Pulogalamuyi ili ndi fayilo yakeyake. Mungathe kukhala ndi makonzedwe apadziko lonse kwa wogwiritsa ntchito (~/.ackrc) ndi m'deralo kwa foda inayake (muyenera kupanga fayilo ya .ackrc mufoda).
Zambiri mwazosankha zomwe zalembedwa mu configs zitha kufotokozedwa pamanja zikaitanidwa. Tiyeni tione angapo a iwo.
Musanyalanyaze foda mukasaka
--ignore-dir=dist
Tiyeni tiwonjezere mtundu wa fayilo -vue.
--type-add=vue:ext:js,vue
Tsopano mutha kugwiritsa ntchito njira --vue kufufuza mafayilo .vue. Mwachitsanzo: ack --vue App.
Mutha kufotokoza mndandanda wazowonjezera pazosankha izi. Mwachitsanzo, apa, mukamagwiritsa ntchito -vue, zotsatirazi zidzakonzedwa: .js mafayilo.
Musanyalanyaze mafayilo, mwachitsanzo minified *.min.js
--ignore-file=match:/.min.js$/
kolowera
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
Kuyika kuchokera patsamba
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
Mapulagini a osintha:
Pomaliza
Izi sizinthu zonse zomwe zingatheke. Mndandanda wonse wa ntchito ukhoza kuwonedwa pothamanga:
ack β-help
# ΠΈΠ»ΠΈ
ack --man
Chida cha ack chimakupatsani mwayi wopanga kusaka mu terminal kukhala kosavuta komanso kosavuta. Ndi kugwiritsa ntchito pipeline (ack -C 10 moni | ack dziko) mutha kupanga kuphatikiza kwamphamvu posaka ndi kusefa deta mu fayilo yamafayilo ndi mafayilo omwe.
Source: www.habr.com