Mig langar að segja þér frá einu leitarforriti sem einfaldar lífið til muna. Þegar ég kem á serverinn og þarf að leita að einhverju þá er það fyrsta sem ég geri að athuga hvort ack sé uppsett. Þetta tól er frábær staðgengill fyrir grep, sem og find og wc að einhverju leyti. Af hverju ekki grep? Ack er með flottari stillingar úr kassanum, læsilegri valkosti, perl regex og stillingarkerfi. Ef þér líkar (verður að) leita í gegnum flugstöðina, þá ættirðu örugglega að prófa það.
Grunneiginleikar
Ack er sjálfgefið endurkvæmt og það er alltaf góð hugmynd að skrifa færri valkosti.
Við getum notað fána -wað segja tólinu að leita að dæmi um mynstur okkar umkringt orðamörkum (hvítt bil, skástrik osfrv.).
ack -w mysql
Ack styður leit eftir skráargerð. Til dæmis, við skulum finna mát útgáfuna í json skrám.
ack --json '"version":s+"d+.d+.d+"'
Hægt er að skoða heildarlista yfir studdar skráargerðir með því að nota:
ack --help-types
Oft þarf að telja hversu oft setning birtist í log-skrá, til dæmis til að skilja hversu mikið af gögnum handritið vann.
Við teljum hversu oft ferlið á sér stað í test.log skránni, án tillits til tilvika (-i).
Við getum talið atvik ekki bara í einni ákveðinni skrá heldur í hóp. Ljúkum fyrri leitinni að orðinu mysql: teldu fjölda tilvika orða (-frá) í *.js skrám(--js), að undanskildum skrám þar sem ekkert fannst (-h) og draga saman niðurstöðuna.
# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql
Að auki getum við fengið ítarlega skýrslu um fjölda atvika í hverri skrá með því að nota (-l)
ack --js -w -cl mysql
Ef þú þarft frekari samhengi fyrir leitina þína geturðu spurt ack
sýna línur upp til (-B) og eftir (-A) hinnar fundnu tjáningar. Til að gera þetta þarftu að tilgreina á eftir valkostinum fjölda lína sem þarf að sýna.
# 2 строки до
ack --js --column -B 2 "query.once('" ./lib/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
Og ef þú þarft bæði, notaðu þá (-С)
ack --js --column -C 2 "query.once('" ./lib/
Það er líka möguleiki (-v) til að snúa leitinni, þ.e.a.s. sýna línur sem innihalda ekki ákveðið mynstur.
Regluleg tjáning
Ack, ólíkt grep, notar Perl samhæfar tjáningar.
Fyrir mig er þetta stór plús; ég þarf ekki að muna sérstaka setningafræði fyrir reglulegar tjáningar.
ack 'vars+adds+'
Flóknara dæmi
ack '*s+[vd+.d+.d+]'
Oft viltu skilja eftir í niðurstöðunum aðeins það sem passar við sniðmátið. --output valkosturinn mun hjálpa hér (-o)
ack -o '*s+[vd+.d+.d+]'
Að auki, með því að nota sviga, getum við valið fundinn hluta og fengið aðgang að honum í úttakinu í gegnum $[hópnúmer] breytuna. Til dæmis,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Ack hefur gagnlega valkosti --svið-byrjun и --svið-endir. Þeir hjálpa þegar
Gögnin eru geymd ekki í einni línu, heldur í fjöllínuformi.
Til dæmis er skrá með sql kóða
Við skulum draga dálkanöfnin út. Upphaf reitsins verður lína sem byrjar á SELECT og endirinn verður lína sem byrjar á FROM.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
Ef leitarorðið inniheldur sértákn eins og punkt, svig og fleira, til að komast ekki undan þeim með því að nota , geturðu notað valkostinn -Q.
# Поиск с экранированием
ack --json 'mysql.'
# Поиск без экранирования
ack --json -Q mysql.
Vinna með skrár
Fáðu lista yfir skrár með tiltekinni viðbót
ack -f --js
Finndu allar js skrár sem byrja á P* með því að nota valkostinn (-g).
ack -g --js '/Pa.+.js$'
Stillingar
Tækið hefur sína eigin stillingarskrá. Þú getur haft bæði alþjóðlega stillingu fyrir notandann (~/.ackrc) og staðbundna fyrir ákveðna möppu (þú þarft að búa til .ackrc skrá í möppunni).
Flesta valmöguleikana sem eru skrifaðir í stillingunum er hægt að tilgreina handvirkt þegar þeir eru kallaðir. Við skulum skoða nokkrar þeirra.
Hunsa möppu þegar leitað er
--ignore-dir=dist
Við skulum bæta við sérsniðinni skráargerð -vue.
--type-add=vue:ext:js,vue
Nú geturðu notað --vue valkostinn til að leita í skrám .vue. Til dæmis: ack --vue app.
Þú getur tilgreint lista yfir viðbætur fyrir þennan valkost. Til dæmis, hér, þegar þú notar -vue, verður eftirfarandi unnið: .js skrár.
Hunsa skrár, til dæmis minified *.min.js
--ignore-file=match:/.min.js$/
Uppsetning
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
Uppsetning frá síðunni
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
Viðbætur fyrir ritstjóra:
Ályktun
Þetta eru ekki allir möguleikarnir. Hægt er að skoða allan lista yfir aðgerðir með því að keyra:
ack –-help
# или
ack --man
ack tólið gerir þér kleift að gera leit í flugstöðinni þægilegri og sveigjanlegri. Og með því að nota leiðslu (ack -C 10 halló | ack heimur) þú getur búið til öfluga samsetningu til að leita og sía gögn í skráarkerfinu og í skránum sjálfum.
Heimild: www.habr.com