Ack ayaa ka fiican grep

Waxaan rabaa inaan kuu sheego wax ku saabsan utility raadinta oo noloshayda ka dhigaya mid aad u fudud. Marka aan galo server-ka oo aan u baahdo inaan wax raadiyo, waxa ugu horreeya ee aan sameeyo waa hubin haddii ack la rakibay. Utility Tani waa bedelka ugu wanaagsan ee grep, iyo ilaa xad, hel iyo wc. Waa maxay sababta grep? Ack waxa uu leeyahay habayn ka baxsan sanduuqa, doorashooyin badan oo bini'aadmigu akhriyi karo, tibaaxaha caadiga ah ee Perl, iyo nidaamka qaabaynta. Haddii aad jeceshahay (ama ay tahay inaad) ka dhex raadiso terminalka, waa inaad hubaal isku daydaa.

Tilmaamaha aasaasiga ah

Ack waa soo noqnoqonaya si caadi ah, iyo qorista doorashooyin yar had iyo jeer waa shay wanaagsan.

Waxaan isticmaali karnaa calanka -win loo sheego utility in ay raadiyaan tusaale ka mid ah qaabkayaga oo ay ku hareeraysan yihiin xuduudo kelmado (meel bannaan, goyn, iwm.).

ack -w mysql

Ack ayaa ka fiican grep

Ack wuxuu taageeraa raadinta nooca faylka Tusaale ahaan, aan ka helno nooca moduleka faylasha JSON.

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

Ack ayaa ka fiican grep

Liis buuxa oo ah noocyada faylalka la taageeray waxaa laga heli karaa:

ack --help-types

Inta badan waa lagama maarmaan in la tiriyo inta jeer ee weedh ka soo baxdo faylka log, tusaale ahaan, si loo fahmo inta xog ee qoraalku farsameeyay.

Ack ayaa ka fiican grep
Waxaan xisaabineynaa inta jeer ee habka uu ka soo muuqdo faylka test.log, anagoo iska indha tirayna kiiska (-i).

Waxaan tirin karnaa dhacdooyinka maahan kaliya hal fayl gaar ah, laakiin koox ahaan. Aan turxaan bixino raadintii hore ee erayga mysql: aan tirino inta jeer ee ay erayadaas dhacaan.-ka yimid) in *.js files(-js), marka laga reebo faylasha aan waxba laga helin (-h) iyo soo koobidda natiijada.

# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql

Ack ayaa ka fiican grep

Intaa waxaa dheer, waxaan ka heli karnaa warbixin faahfaahsan oo ku saabsan tirada dhacdooyinka fayl kasta iyadoo la isticmaalayo (-l)

ack --js -w -cl mysql

Ack ayaa ka fiican grep

Haddii aad u baahan tahay macnaha guud ee raadintaada, waxaad codsan kartaa ack
tusi khadadka ka hor (-B) iyo ka dib (-A) ee muujinta la helay. Si tan loo sameeyo, sheeg tirada safafka si aad u muujiso ikhtiyaarka ka dib.

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

Ack ayaa ka fiican grep

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

Ack ayaa ka fiican grep

Oo haddii aad u baahan tahay labadaba, ka dibna isticmaal (-KA)

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

Waxa kale oo jira ikhtiyaar (-v) in la rogo raadinta, taas oo ah, muujinta khadadka aan ku jirin qaab la bixiyay.

Odhaah joogto ah

Ack, oo ka duwan grep, wuxuu adeegsadaa tibaaxaha ku habboon Perl.
Aniga ahaan, tani waa dheeri weyn; Uma baahnid in aan xasuusto eray-bixin gaar ah oo ku saabsan tibaaxaha caadiga ah.

ack 'vars+adds+'

Ack ayaa ka fiican grep

Tusaale ka sii adag

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

Ack ayaa ka fiican grep

Badana waxaad rabtaa inaad ku hayso kaliya waxa u dhigma qaabka natiijooyinka. Xulashada --output (-o)

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

Ack ayaa ka fiican grep

Intaa waxaa dheer, annagoo adeegsanayna qawl-qodobyo waxaan dooran karnaa qaybta la helay oo aan ka geli karnaa wax-soo-saarka anagoo adeegsanayna doorsoomaha $[group number]. Tusaale ahaan,

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

Ack ayaa ka fiican grep

Ack wuxuu leeyahay doorashooyin faa'iido leh - bilowga-bilow и -dhamaadka-dhamaadkaWaxay caawiyaan marka
Xogta laguma kaydiyo hal xariiq, balse waxa lagu kaydiyaa qaab dhawr xariiq ah.

Tusaale ahaan, waxaa jira fayl leh koodka SQL

Ack ayaa ka fiican grep

Aynu soo saarno magacyada tiirarka. Balooggu wuxuu ka bilaabmi doonaa xariiqda ka bilaabma SELECT, wuxuuna ku dhamaan doonaa xariiqda ka bilaabmaya FROM.

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

Ack ayaa ka fiican grep

Haddii tibaaxaha raadinta ay ku jiraan xarfo gaar ah sida caadada, qawlka, iyo kuwa kale, ka dib si aad uga fogaato in iyaga lagu baxsado, waxaad isticmaali kartaa ikhtiyaarka -Q.

# Поиск с экранированием 
ack --json 'mysql.'    
# Поиск без экранирования
ack --json -Q mysql.

Ack ayaa ka fiican grep

Ku shaqaynta faylasha

Hel liiska faylasha leh kordhin gaar ah

ack -f --js

Ack ayaa ka fiican grep

Soo hel dhammaan faylasha js oo magacoodu ka bilaabmo P* adoo isticmaalaya ikhtiyaarka (-g).

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

Ack ayaa ka fiican grep

Qaabeynta

Utility wuxuu leeyahay faylka qaabeynta u gaar ah. Waxaad yeelan kartaa faylka qaabeynta caalamiga ah ee isticmaalaha (~/.ackrc) ama faylka qaabeynta deegaanka ee gal gaar ah (waa inaad ku dhex abuurtaa faylka .ackrc galka).

Inta badan xulashooyinka lagu cayimay faylalka habaynta waxa gacanta lagu dejin karaa wakhtiga runtime. Bal aan eegno dhowr ka mid ah.

Iska daa galka marka aad raadinayso

--ignore-dir=dist

Aynu ku darno nooca faylka gaarka ah —vue.

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

Waxaad hadda isticmaali kartaa ikhtiyaarka --vue si aad u baadho faylasha. .vue. Tusaale ahaan: ack — vue App.
Waxa kale oo aad u cayimi kartaa liiska kordhinta doorashadan. Tusaale ahaan, isticmaalka --vue ayaa sidoo kale socodsiin doona
.js faylasha.

Iska daa faylalka sida la yareeyay *.min.js

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

Ku rakibida

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

Ku rakibida shabakada

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

Plugins ee tafatirayaasha:

gunaanad

Kuwani waa dhawr ka mid ah sifooyinka. Liis buuxa oo ah hawlaha waxa laga heli karaa orod:

ack –-help
# или
ack --man

Utility ack wuxuu ka dhigayaa raadinta terminaalka mid ku habboon oo dabacsan. Iyo iyadoo la kaashanayo dhuumaha (ack -C 10 hello | ack aduun) waxaad abuuri kartaa isku-dar xoog leh oo raadinta iyo shaandhaynta xogta nidaamka faylka iyo faylalka laftooda.

Source: www.habr.com

Add a comment