Ack e sili atu nai lo grep

Ou te fia taʻu atu ia te oe se tasi suʻesuʻega aoga e matua faafaigofie ai le olaga. A ou oʻo i le 'auʻaunaga ma e manaʻomia ona ou suʻeina se mea, o le mea muamua ou te faia o le siaki pe faʻapipiʻi le ack. O lenei aoga o se sui sili ona lelei mo le grep, faʻapea foʻi ma le mauaina ma le wc i nisi itu. Aisea e le grep? Ack e sili atu ona lelei tulaga mai le pusa, sili atu tagata-faitau filifiliga, perl regex ma se config system. Afai e te manaʻo (e tatau) suʻesuʻe i totonu o le laina, ona tatau lea ona e faʻataʻitaʻia.

Vaega Autu

Ack e toe fa'afo'i ona o le faaletonu, ma o le tusiaina o ni nai filifiliga o se manatu lelei lava.

E mafai ona tatou faʻaaogaina se fuʻa -we taʻu atu ai le aoga e suʻe ai se faʻataʻitaʻiga o la tatou mamanu o loʻo siosiomia e tuaoi o upu (whitespace, slashes, etc.).

ack -w mysql

Ack e sili atu nai lo grep

E lagolagoina e le Ack su'esu'ega ile ituaiga faila. Mo se faʻataʻitaʻiga, seʻi o tatou suʻeina le module version i faila json.

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

Ack e sili atu nai lo grep

O se lisi atoa o ituaiga faila e lagolagoina e mafai ona vaʻaia e faʻaaoga ai:

ack --help-types

E masani ona e manaʻomia le faitauina pe faafia ona aliali mai se fuaitau i se faila ogalaau, mo se faʻataʻitaʻiga, e malamalama ai i le tele o faʻamaumauga o loʻo faʻaogaina.

Ack e sili atu nai lo grep
Matou te faitauina le tele o taimi e tupu ai le faagasologa i le faila test.log, ae le o le amanaia o le mataupu (-i).

E mafai ona tatou faitauina mea tutupu e le gata i se faila patino, ae i totonu o se vaega. Sei o tatou fa'amae'aina le su'esu'ega muamua mo le upu mysql: faitau le aofa'i o fa'atupuina o upu (-mai) i *.js faila(--js), e le aofia ai faila e leai se mea na maua (-h) ma le aotelega o le taunuuga.

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

Ack e sili atu nai lo grep

E le gata i lea, e mafai ona matou maua se lipoti auiliili i le numera o mea e tutupu i faila taʻitasi e faʻaaoga ai (-l)

ack --js -w -cl mysql

Ack e sili atu nai lo grep

Afai e te mana'omia fa'amatalaga faaopoopo mo lau su'esu'ega, e mafai ona e fesili i ai
fa'aali laina e o'o i (-B) ma mulimuli ane (-A) o le faaupuga maua. Ina ia faia lenei mea, e tatau ona e faʻamaonia pe a maeʻa le filifiliga le numera o laina e manaʻomia ona faʻaalia.

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

Ack e sili atu nai lo grep

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

Ack e sili atu nai lo grep

Ma afai e te manaʻomia uma e lua, ona faʻaaoga lea (-FAI)

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

E iai foʻi se avanoa (-v) e fesuia'i le su'esu'ega, o lona uiga fa'aali laina e le o iai se fa'ata'ita'iga.

Fa'aaliga masani

Ack, e le pei o le grep, faʻaoga Perl faʻamatalaga fetaui.
Mo aʻu o se faʻaopoopoga tele lea; Ou te le tau manatuaina se faʻasologa ese mo faʻamatalaga masani.

ack 'vars+adds+'

Ack e sili atu nai lo grep

Fa'ata'ita'iga sili atu ona lavelave

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

Ack e sili atu nai lo grep

E tele taimi e te mana'o e tu'u ai i'uga na'o mea e fetaui ma le mamanu. O le filifiliga --output o le a fesoasoani iinei (-o)

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

Ack e sili atu nai lo grep

E le gata i lea, o le faʻaaogaina o puipui e mafai ona tatou filifilia le vaega maua ma maua i totonu o galuega faatino e ala i le $[numera kulupu] fesuiaiga. Faataitaiga,

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

Ack e sili atu nai lo grep

Ack ei ai filifiliga aoga --va'aiga-amata и --ava-i'uga. Latou te fesoasoani pe a
O faʻamaumauga e le teuina i se laina e tasi, ae i le tele-laina fomu.

Mo se faʻataʻitaʻiga, o loʻo i ai se faila ma le sql code

Ack e sili atu nai lo grep

Se'i o'o mai igoa o koluma. Ole amataga ole poloka ole laina e amata ile SELECT, ma le faaiuga ole laina amata ile FROM.

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

Ack e sili atu nai lo grep

Afai o le faʻamatalaga suʻesuʻe o loʻo i ai faʻamatalaga faʻapitoa e pei o se vaitaimi, puipui, ma isi, ina ia aua neʻi sola ese mai i latou i le faʻaaogaina, e mafai ona e faʻaogaina le filifiliga. -Q.

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

Ack e sili atu nai lo grep

Galulue ma faila

Maua se lisi o faila ma se faʻaopoopoga faʻapitoa

ack -f --js

Ack e sili atu nai lo grep

Su'e uma faila js o lona igoa e amata ile P* fa'aaoga le filifiliga (-g).

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

Ack e sili atu nai lo grep

Fetuunaiga

O le aoga e iai lana lava faila faila. E mafai ona e maua uma se faʻasalalauga faʻavaomalo mo le tagata faʻaoga (~ / .ackrc) ma se faʻapitonuʻu mo se faila faʻapitoa (e tatau ona e fatuina se faila .ackrc i totonu o le faila).

Ole tele ole filifiliga o lo'o tusia ile configs e mafai ona fa'amaoti lima ile vala'au. Seʻi o tatou vaavaai i nisi o na mea.

Le amana'ia le faila pe a su'e

--ignore-dir=dist

Se'i o tatou fa'aopoopoina se ituaiga faila fa'apitoa -vue.

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

O lea e mafai ona e faʻaogaina le filifiliga --vue e suʻe faila .vue. Faataitaiga: ack --vue App.
E mafai ona e faʻamaonia se lisi o faʻaopoopoga mo lenei filifiliga. Mo se faʻataʻitaʻiga, iinei, pe a faʻaaogaina -vue, o mea nei o le a faʻatautaia:
.js faila.

Le amanaʻia faila, mo se faʻataʻitaʻiga faʻaititia *.min.js

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

faatulagaga

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

Fa'apipi'i mai le saite

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

Plugins mo faatonu:

iʻuga

E le o avanoa uma ia. O le lisi atoa o galuega e mafai ona vaʻaia e ala i le taʻavale:

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

O le ack utility e mafai ai e oe ona fa'afaigofie ma fetu'una'i le su'esu'eina i totonu o le fa'ailoga. Ma faʻaaogaina paipa (ack -C 10 talofa | ack lalolagi) e mafai ona e fatuina se tuʻufaʻatasiga malosi mo le suʻeina ma le faʻamamaina o faʻamaumauga i le faila faila ma faila lava ia.

puna: www.habr.com

Faaopoopo i ai se faamatalaga