Tha mi airson innse dhut mu aon ghoireas sgrùdaidh a bhios gu mòr a’ sìmpleachadh beatha. Nuair a ruigeas mi an fhrithealaiche agus feumaidh mi rudeigin a lorg, is e a’ chiad rud a nì mi dèanamh cinnteach a bheil ack air a chuir a-steach. Tha an goireas seo na dheagh àite airson grep, a bharrachd air lorg agus wc gu ìre. Carson nach grep? Tha roghainnean nas fheàrr aig Ack a-mach às a’ bhogsa, roghainnean a ghabhas leughadh le daoine, perl regex agus siostam config. Ma tha thu ag iarraidh (feumaidh) sgrùdadh a dhèanamh tron phort-adhair, bu chòir dhut feuchainn air gu cinnteach.
Feartan bunaiteach
Tha Ack ath-chuairteachail gu bunaiteach, agus tha sgrìobhadh nas lugha de roghainnean an-còmhnaidh na dheagh bheachd.
Faodaidh sinn bratach a chleachdadh -wgus innse don ghoireas coimhead airson eisimpleir den phàtran againn air a chuairteachadh le crìochan fhaclan (àite geal, slashes, msaa).
ack -w mysql
Tha Ack a’ toirt taic do rannsachadh a rèir seòrsa faidhle. Mar eisimpleir, lorg sinn dreach a’ mhodal ann am faidhlichean json.
ack --json '"version":s+"d+.d+.d+"'
Faodar liosta iomlan de na seòrsaichean faidhle le taic fhaicinn le bhith a’ cleachdadh:
ack --help-types
Gu math tric feumaidh tu cunntadh cia mheud uair a nochdas abairt ann am faidhle log, mar eisimpleir, gus tuigse fhaighinn air an ìre de dhàta a chaidh an sgriobt a phròiseasadh.
Bidh sinn a’ cunntadh cia mheud uair a bhios pròiseas a’ tachairt anns an fhaidhle test.log, gun a bhith a’ toirt aire do chùis (-i).
Faodaidh sinn tachartasan a chunntadh chan ann a-mhàin ann an aon fhaidhle sònraichte, ach ann am buidheann. Nach cuir sinn crìoch air an rannsachadh roimhe airson an fhacail mysql: cunnt an àireamh de dh’ fhaclan a thachair (- tha) ann am faidhlichean *.js(--js), às aonais faidhlichean anns nach deach dad a lorg (-h) agus geàrr-chunntas air an toradh.
# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql
A bharrachd air an sin, gheibh sinn aithisg mhionaideach air an àireamh de thachartasan anns gach faidhle a’ cleachdadh (-l)
ack --js -w -cl mysql
Ma tha feum agad air co-theacs a bharrachd airson do rannsachadh, faodaidh tu faighneachd dha
seall loidhnichean suas gu (-B) agus an dèidh (-A) den abairt a chaidh a lorg. Gus seo a dhèanamh, feumaidh tu an àireamh de loidhnichean a dh'fheumar a shealltainn às deidh an roghainn.
# 2 строки до
ack --js --column -B 2 "query.once('" ./lib/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
Agus ma tha feum agad air an dà chuid, cleachd (-WITH)
ack --js --column -C 2 "query.once('" ./lib/
Tha roghainn ann cuideachd (-v) gus an rannsachadh a thionndadh, i.e. seall loidhnichean anns nach eil pàtran sònraichte.
Cur an cèill cunbhalach
Bidh Ack, eu-coltach ri grep, a’ cleachdadh abairtean co-chosmhail ri Perl.
Dhòmhsa is e buannachd mhòr a tha seo; chan fheum mi cuimhneachadh air co-chòrdadh air leth airson abairtean cunbhalach.
ack 'vars+adds+'
Eisimpleir nas iom-fhillte
ack '*s+[vd+.d+.d+]'
Gu math tric bidh thu airson fàgail anns na toraidhean dìreach na tha a rèir an teamplaid. Cuidichidh an roghainn --output an seo (-o)
ack -o '*s+[vd+.d+.d+]'
A bharrachd air sin, le bhith a’ cleachdadh bragan, is urrainn dhuinn am pàirt a chaidh a lorg a thaghadh agus faighinn thuige ann an toradh tron chaochladair $[buidhne]. Mar eisimpleir,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Tha roghainnean feumail aig Ack --raon-tòiseachaidh и --raon-crìoch. Bidh iad a 'cuideachadh nuair a
Tha an dàta air a stòradh chan ann ann an aon loidhne, ach ann an cruth ioma-loidhne.
Mar eisimpleir, tha faidhle ann le còd sql
Bheir sinn a-mach ainmean nan colbhan. Bidh toiseach a’ bhloca na loidhne a’ tòiseachadh le SELECT, agus bidh an deireadh na loidhne a’ tòiseachadh le FROM.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
Ma tha caractaran sònraichte anns an abairt sgrùdaidh leithid ùine, brannd, agus feadhainn eile, gus nach teicheadh thu le bhith a’ cleachdadh , faodaidh tu an roghainn a chleachdadh -Q.
# Поиск с экранированием
ack --json 'mysql.'
# Поиск без экранирования
ack --json -Q mysql.
Obraich le faidhlichean
Faigh liosta de fhaidhlichean le leudachadh sònraichte
ack -f --js
Lorg a h-uile faidhle js aig a bheil ainm a’ tòiseachadh le P* a’ cleachdadh an roghainn (-g).
ack -g --js '/Pa.+.js$'
Rèiteachadh
Tha am faidhle config aige fhèin aig a’ ghoireas. Faodaidh tu an dà chuid config cruinneil a bhith agad airson an neach-cleachdaidh (~/.ackrc) agus fear ionadail airson pasgan sònraichte (feumaidh tu faidhle .ackrc a chruthachadh sa phasgan).
Faodar a’ mhòr-chuid de na roghainnean a tha sgrìobhte anns na configs a shònrachadh le làimh nuair a thèid an gairm. Bheir sinn sùil air beagan dhiubh.
Mothaich am pasgan nuair a bhios tu a’ lorg
--ignore-dir=dist
Nach cuir sinn seòrsa faidhle àbhaisteach -vue.
--type-add=vue:ext:js,vue
A-nis faodaidh tu an roghainn --vue a chleachdadh gus faidhlichean a lorg .bhuain. Mar eisimpleir: ack --vue App.
Faodaidh tu liosta de leudachaidhean a shònrachadh airson an roghainn seo. Mar eisimpleir, an seo, nuair a bhios tu a’ cleachdadh -vue, thèid na leanas a phròiseasadh: .js faidhlichean.
Leig seachad faidhlichean, mar eisimpleir mion-sgrùdadh *.min.js
--ignore-file=match:/.min.js$/
suidheachadh
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
Stàladh bhon làraich
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
Plugins airson luchd-deasachaidh:
co-dhùnadh
Chan e seo na comasan uile. Faodar an liosta iomlan de ghnìomhan fhaicinn le bhith a’ ruith:
ack –-help
# или
ack --man
Leigidh an goireas ack leat sgrùdadh a dhèanamh anns an inneal-crìochnachaidh nas goireasaiche agus nas sùbailte. Agus a’ cleachdadh loidhne-phìoban (ack -C 10 hello | saoghal aic) faodaidh tu cothlamadh cumhachdach a chruthachadh airson dàta a lorg agus a shìoladh san t-siostam faidhle agus anns na faidhlichean fhèin.
Source: www.habr.com