Ke batla ho u joetsa ka sesebelisoa se le seng sa ho batla se nolofatsang bophelo haholo. Ha ke fihla ho seva mme ke hloka ho batla ho hong, ntho ea pele eo ke e etsang ke ho hlahloba hore na ack e kentsoe. Sesebelisoa sena ke sebaka se setle sa grep, hammoho le ho fumana le wc ho isa bohōleng bo itseng. Hobaneng u sa grep? Ack e na le litlhophiso tse ntle ka ntle ho lebokose, likhetho tse baloang ke batho, perl regex le sistimi ea config. Haeba u rata (o tlameha) ho batla ka har'a terminal, joale u tlameha ho e leka.
Lintlha tsa Motheo
Ack e ipheta ka mokhoa o ikhethileng, 'me ho ngola likhetho tse fokolang ke mohopolo o motle kamehla.
Re ka sebelisa folakha -who bolella thuso ho batla mohlala oa mohlala oa rona o pota-potiloeng ke meeli ea mantsoe (whitespace, slashes, joalo-joalo).
ack -w mysql
Ack e tšehetsa ho batla ka mofuta oa faele. Mohlala, ha re fumane mofuta oa module lifaeleng tsa json.
ack --json '"version":s+"d+.d+.d+"'
Lenane le felletseng la mefuta ea lifaele tse tšehetsoeng li ka bonoa ho sebelisoa:
ack --help-types
Hangata o hloka ho bala hore na poleloana e hlaha hangata hakae faeleng ea log, mohlala, ho utloisisa hore na script e sebelitse hakae.
Re bala hore na ts'ebetso e etsahala ka makhetlo a makae faeleng ea test.log, re sa nahane ka nyeoe (-i).
Re ka bala liketsahalo eseng faeleng e le 'ngoe feela, empa le sehlopha. Ha re phethelle patlo e fetileng ea lentsoe mysql: bala palo ea mantsoe a hlahang (-s) ho *.js lifaele (--js), ntle le lifaele tseo ho seng letho le fumanoeng ho tsona (-h) le ho akaretsa sephetho.
# выведем на экран все вхождения
ack --js -w mysql
# считаем общую сумму вхождений
ack --js -wch mysql
Ntle le moo, re ka fumana tlaleho e felletseng mabapi le palo ea liketsahalo tse hlahang faeleng ka 'ngoe re sebelisa (-l)
ack --js -w -cl mysql
Haeba o hloka moelelo o eketsehileng oa patlo ea hau, o ka botsa ack
bonts'a mela ho fihlela (-B) le ka morao (-A) ea polelo e fumanoeng. Ho etsa sena, o hloka ho hlakisa ka mor'a khetho palo ea mela e lokelang ho bontšoa.
# 2 строки до
ack --js --column -B 2 "query.once('" ./lib/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
'Me haeba u li hloka ka bobeli, joale sebelisa (-HO TSOA)
ack --js --column -C 2 "query.once('" ./lib/
Hape ho na le khetho (-v) ho khelosa patlo, ke ho re bontša mela e se nang mokhoa o fanoeng.
Mantsoe a tloaelehileng
Ack, ho fapana le grep, e sebelisa mantsoe a lumellanang le Perl.
Ho 'na sena ke motsoako o moholo; ha ho hlokahale hore ke hopole syntax e arohaneng bakeng sa lipolelo tse tloaelehileng.
ack 'vars+adds+'
Mohlala o rarahaneng haholoanyane
ack '*s+[vd+.d+.d+]'
Hangata u batla ho siea liphetho feela se tšoanang le thempleite. Khetho ea --output e tla thusa mona (-o)
ack -o '*s+[vd+.d+.d+]'
Ho phaella moo, ka ho sebelisa masakaneng re ka khetha karolo e fumanoeng 'me ra e fumana ka tlhahiso ka $[nomoro ea sehlopha]. Ka mohlala,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Ack e na le likhetho tse sebetsang --range-start и --range-qetellong. Ba thusa ha
Lintlha ha li bolokoe moleng o le mong, empa ka mokhoa oa mela e mengata.
Ka mohlala, ho na le faele e nang le sql code
Ha re ntše mabitso a kholomo. Tšimoloho ea boloko e tla ba mola o qalang ka KHETHA, 'me qetello e tla ba mola o qalang ka FROM.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
Haeba polelo ea ho batla e na le litlhaku tse ikhethileng joalo ka nako, masaka, le tse ling, e le hore u se ke oa li baleha u sebelisa, u ka sebelisa khetho eo. -Q.
# Поиск с экранированием
ack --json 'mysql.'
# Поиск без экранирования
ack --json -Q mysql.
Ho sebetsana le lifaele
Fumana lethathamo la lifaele tse nang le katoloso e itseng
ack -f --js
Fumana lifaele tsohle tsa js tseo lebitso la tsona le qalang ka P* u sebelisa khetho (-g).
ack -g --js '/Pa.+.js$'
Moralo
Sesebelisoa se na le faele ea sona ea config. U ka ba le litlhophiso tsa lefats'e ka bobeli bakeng sa mosebelisi (~/.ackrc) le ea lehae bakeng sa foldara e itseng (o hloka ho theha faele ea .ackrc foldareng).
Boholo ba likhetho tse ngotsoeng ho li-configs li ka hlalosoa ka letsoho ha li bitsoa. A re hlahlobeng tse seng kae tsa tsona.
Hlokomoloha sephutheli ha u se batla
--ignore-dir=dist
Ha re kenye mofuta oa faele oa tloaelo -vue.
--type-add=vue:ext:js,vue
Joale u ka sebelisa khetho ea --vue ho batla lifaele .vue. Ka mohlala: ack --vue App.
O ka hlakisa lethathamo la likeketso bakeng sa khetho ena. Ka mohlala, mona, ha u sebelisa -vue, tse latelang li tla sebetsoa: .js lifaele.
Hlokomoloha lifaele, mohlala minified *.min.js
--ignore-file=match:/.min.js$/
bophirima
CentOS
yum update -y && yum install ack -y
Botho
apt-get update -y && apt-get install ack-grep -y
mac OS
brew update && brew install ack
Ho kenya ho tsoa setšeng
curl https://beyondgrep.com/ack-v3.3.1 > ~/bin/ack && chmod 0755 ~/bin/ack
Li-plugins tsa bahlophisi:
fihlela qeto e
Tsena hase menyetla eohle. Lethathamo le felletseng la mesebetsi le ka bonoa ka ho matha:
ack –-help
# или
ack --man
Sesebelisoa sa ack se u lumella ho etsa hore ho batla ka har'a terminal ho be bonolo haholoanyane hape ho be bonolo. Le ho sebelisa pipeline (ack -C 10 hello | ack lefatše) o ka etsa motsoako o matla oa ho batla le ho sefa data ho sistimi ea lifaele le lifaeleng ka botsona.
Source: www.habr.com