Ack ndiwabwino kuposa grep

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 ndiwabwino kuposa grep

Ack imathandizira kusaka ndi mtundu wa fayilo. Mwachitsanzo, tiyeni tipeze mtundu wa module mumafayilo a json.

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

Ack ndiwabwino kuposa grep

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.

Ack ndiwabwino kuposa grep
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

Ack ndiwabwino kuposa grep

Kuphatikiza apo, titha kupeza lipoti latsatanetsatane la kuchuluka kwa zomwe zimachitika mufayilo iliyonse pogwiritsa ntchito (-l)

ack --js -w -cl mysql

Ack ndiwabwino kuposa grep

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/

Ack ndiwabwino kuposa grep

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

Ack ndiwabwino kuposa grep

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

Ack ndiwabwino kuposa grep

Chitsanzo chovuta kwambiri

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

Ack ndiwabwino kuposa grep

Nthawi zambiri mukufuna kusiya muzotsatira zomwe zikufanana ndi template. Njira ya --output ithandiza apa (-o)

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

Ack ndiwabwino kuposa grep

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 ndiwabwino kuposa grep

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

Ack ndiwabwino kuposa grep

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

Ack ndiwabwino kuposa grep

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.

Ack ndiwabwino kuposa grep

Kugwira ntchito ndi mafayilo

Pezani mndandanda wamafayilo okhala ndi zowonjezera zina

ack -f --js

Ack ndiwabwino kuposa grep

Pezani mafayilo onse a js omwe dzina lawo limayamba ndi P* pogwiritsa ntchito njirayo (-g).

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

Ack ndiwabwino kuposa grep

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

Kuwonjezera ndemanga