Ack ya fi grep

Ina so in gaya muku game da kayan aikin bincike guda ɗaya wanda ke sauƙaƙa rayuwa sosai. Lokacin da na isa uwar garken kuma ina buƙatar neman wani abu, abu na farko da zan yi shine duba idan an shigar da ack. Wannan mai amfani shine kyakkyawan maye gurbin grep, haka kuma ganowa da wc zuwa wani yanki. Me yasa ba grep ba? Ack yana da mafi kyawun saituna daga cikin akwatin, ƙarin zaɓuɓɓukan da mutum zai iya karantawa, perl regex da tsarin saiti. Idan kuna son (dole) bincika ta tashar tashar, to lallai yakamata ku gwada ta.

Siffofin asali

Ack yana maimaituwa ta tsohuwa, kuma rubuta ƴan zaɓuɓɓuka koyaushe yana da kyau.

Za mu iya amfani da tuta -wdon gaya wa mai amfani don neman misalin tsarin mu wanda ke kewaye da iyakokin kalmomi (farin sarari, slash, da sauransu).

ack -w mysql

Ack ya fi grep

Ack yana goyan bayan bincike ta nau'in fayil. Misali, bari mu nemo sigar module a cikin fayilolin json.

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

Ack ya fi grep

Ana iya duba cikakken jerin nau'ikan fayil ɗin da aka goyan baya ta amfani da:

ack --help-types

Sau da yawa kuna buƙatar ƙidaya sau nawa jimla ta bayyana a cikin fayil ɗin log, misali, don fahimtar adadin bayanan da rubutun ya sarrafa.

Ack ya fi grep
Muna ƙidaya sau nawa tsari ke faruwa a cikin fayil ɗin test.log, ba tare da la'akari da yanayin ba (-i).

Za mu iya ƙidaya abubuwan da suka faru ba kawai a cikin takamaiman fayil ɗaya ba, amma a cikin rukuni. Bari mu kammala binciken da ya gabata na kalmar mysql: ƙidaya adadin abubuwan da suka faru na kalmomi (tare daa cikin * .js fayiloli (--js), ban da fayilolin da ba a sami komai ba (-h) da kuma taƙaita sakamakon.

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

Ack ya fi grep

Bugu da ƙari, za mu iya samun cikakken rahoto kan adadin abubuwan da suka faru a kowane fayil ta amfani da ((-l)

ack --js -w -cl mysql

Ack ya fi grep

Idan kuna buƙatar ƙarin mahallin don bincikenku, kuna iya tambayar ack
nuna layi har zuwa (-B) da kuma bayan (-A) na maganganun da aka samo. Don yin wannan, kuna buƙatar saka bayan zaɓin adadin layin da ake buƙatar nunawa.

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

Ack ya fi grep

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

Ack ya fi grep

Kuma idan kuna buƙatar duka biyu, to ku yi amfani da (-DA)

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

Akwai kuma wani zaɓi (-v) don juyar da binciken, watau nuna layin da ba su ƙunshi wani tsari da aka bayar ba.

Magana akai-akai

Ack, ba kamar grep ba, yana amfani da maganganun da suka dace da Perl.
A gare ni wannan babban ƙari ne; Ba dole ba ne in tuna da keɓancewar ma'anar magana ta yau da kullun.

ack 'vars+adds+'

Ack ya fi grep

Misali mai rikitarwa

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

Ack ya fi grep

Yawancin lokaci kuna son barin a cikin sakamakon kawai abin da ya dace da samfuri. Zaɓin --output zai taimaka a nan (-o)

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

Ack ya fi grep

Bugu da kari, ta amfani da baka za mu iya zaɓar ɓangaren da aka samo kuma mu sami dama gare shi a cikin fitarwa ta madaidaicin $[lambar rukuni]. Misali,

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

Ack ya fi grep

Ack yana da zaɓuɓɓuka masu amfani --range-fara и -- iyaka-ƙarshe. Suna taimakawa lokacin
Ana adana bayanan ba a layi ɗaya ba, amma a cikin nau'i mai yawa.

Misali, akwai fayil tare da lambar sql

Ack ya fi grep

Bari mu cire ginshiƙan sunaye. Farkon toshe zai kasance layin farawa da SELECT, kuma ƙarshen zai zama layin farawa da FROM.

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

Ack ya fi grep

Idan bayanin binciken ya ƙunshi haruffa na musamman kamar lokaci, ƙididdiga, da sauransu, to don kada ku tsere musu ta amfani da , zaku iya amfani da zaɓin. -Q.

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

Ack ya fi grep

Aiki tare da fayiloli

Sami jerin fayiloli tare da takamaiman tsawo

ack -f --js

Ack ya fi grep

Nemo duk fayilolin js waɗanda sunansu ya fara da P* ta amfani da zaɓi (-g).

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

Ack ya fi grep

Kanfigareshan

Mai amfani yana da fayil ɗin saitin kansa. Kuna iya samun duka tsarin tsarin duniya don mai amfani (~/.ackrc) da na gida don takamaiman babban fayil (kana buƙatar ƙirƙirar fayil ɗin .ackrc a cikin babban fayil ɗin).

Yawancin zaɓuɓɓukan da aka rubuta a cikin saiti ana iya ƙayyade su da hannu lokacin da ake kira. Bari mu kalli kadan daga cikinsu.

Yi watsi da babban fayil lokacin bincike

--ignore-dir=dist

Bari mu ƙara nau'in fayil na al'ada -vue.

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

Yanzu zaku iya amfani da zaɓin --vue don bincika fayiloli .vue. Misali: ack --vue App.
Kuna iya ƙayyade lissafin kari don wannan zaɓi. Misali, a nan, lokacin amfani da -vue, za a aiwatar da waɗannan abubuwan:
.js fayiloli.

Yi watsi da fayiloli, misali ƙananan *.min.js

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

saitin

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

Shigarwa daga rukunin yanar gizon

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

Plugins don masu gyara:

ƙarshe

Waɗannan ba duka dama ba ne. Ana iya duba cikakken jerin ayyuka ta gudana:

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

Ack mai amfani yana ba ku damar yin bincike a cikin tashar mafi dacewa da sassauƙa. Kuma amfani da bututu (ack -C 10 sannu | ak duniya) zaku iya ƙirƙirar haɗin gwiwa mai ƙarfi don bincike da tace bayanai a cikin tsarin fayil da fayilolin kansu.

source: www.habr.com

Add a comment