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 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+"'
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.
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
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
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/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
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+'
Misali mai rikitarwa
ack '*s+[vd+.d+.d+]'
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+]'
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 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
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
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.
Aiki tare da fayiloli
Sami jerin fayiloli tare da takamaiman tsawo
ack -f --js
Nemo duk fayilolin js waɗanda sunansu ya fara da P* ta amfani da zaɓi (-g).
ack -g --js '/Pa.+.js$'
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