Ack leuwih hade tinimbang grep

Abdi hoyong ngabejaan Anjeun tentang hiji utilitas pilarian nu greatly simplifies hirup. Nalika kuring meunang ka server na kuring kudu néangan hal, hal kahiji anu kuring lakukeun nyaéta pariksa lamun ack geus dipasang. Utiliti ieu mangrupikeun gaganti anu saé pikeun grep, ogé milarian sareng wc dugi ka sababaraha. Naha henteu grep? Ack gaduh setélan anu langkung saé tina kotak, langkung seueur pilihan anu tiasa dibaca manusa, perl regex sareng sistem config. Upami anjeun resep (kudu) milarian terminal, maka anjeun pasti kedah nyobian éta.

Fitur dasar

Ack nyaéta rekursif sacara standar, sareng nyerat pilihan anu langkung sakedik mangrupikeun ide anu saé.

Urang tiasa nganggo bandéra -wpikeun ngabejaan pedah néangan conto pola urang dikurilingan ku wates kecap (spasi bodas, garis miring, jsb).

ack -w mysql

Ack leuwih hade tinimbang grep

Ack ngadukung milarian dumasar kana jinis file. Contona, hayu urang manggihan versi modul dina file json.

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

Ack leuwih hade tinimbang grep

Daptar lengkep jinis file anu dirojong tiasa ditingali nganggo:

ack --help-types

Sering anjeun kedah ngitung sabaraha kali frasa muncul dina file log, contona, pikeun ngartos sabaraha data anu diolah ku naskah.

Ack leuwih hade tinimbang grep
Urang ngitung sabaraha kali prosés lumangsung dina file test.log, teu nyokot kana akun kasus (-i).

Urang bisa ngitung kajadian teu ngan dina hiji file husus, tapi dina grup. Hayu urang finalize pilarian saméméhna pikeun kecap mysql: cacah jumlah lumangsungna kecap (-dari) dina file *.js(--js), teu kaasup file nu teu kapanggih nanaon (-h) jeung nyimpulkeun hasilna.

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

Ack leuwih hade tinimbang grep

Salaku tambahan, urang tiasa kéngingkeun laporan lengkep ngeunaan jumlah kajadian dina unggal file nganggo (-l)

ack --js -w -cl mysql

Ack leuwih hade tinimbang grep

Upami anjeun peryogi kontéks tambahan pikeun milarian anjeun, anjeun tiasa naroskeun ka ack
némbongkeun garis nepi ka (-B) jeung sanggeus (-A) tina babasan nu kapanggih. Jang ngalampahkeun ieu, anjeun kudu nangtukeun sanggeus pilihan jumlah garis nu kudu ditémbongkeun.

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

Ack leuwih hade tinimbang grep

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

Ack leuwih hade tinimbang grep

Sareng upami anjeun peryogi duanana, teras nganggo (-TI)

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

Aya ogé pilihan (-v) pikeun ngabalikeun panéangan, nyaéta nunjukkeun garis anu henteu ngandung pola anu dipasihkeun.

Ekspresi biasa

Ack, teu siga grep, ngagunakeun ekspresi anu cocog sareng Perl.
Pikeun kuring ieu mangrupikeun tambihan anu ageung; Abdi henteu kedah émut sintaksis anu misah pikeun ekspresi biasa.

ack 'vars+adds+'

Ack leuwih hade tinimbang grep

Conto leuwih kompleks

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

Ack leuwih hade tinimbang grep

Mindeng rék ninggalkeun dina hasil ngan naon cocog template. Pilihan --output bakal ngabantosan di dieu (-o)

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

Ack leuwih hade tinimbang grep

Sajaba ti éta, ngagunakeun kurung urang bisa milih bagian kapanggih sarta aksés ka kaluaran ngaliwatan variabel $[group number]. Salaku conto,

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

Ack leuwih hade tinimbang grep

Ack boga pilihan mangpaat --rentang-mimiti и --rentang-tungtung. Aranjeunna mantuan nalika
Data disimpen henteu dina hiji garis, tapi dina bentuk multi-garis.

Contona, aya file kalawan kode sql

Ack leuwih hade tinimbang grep

Hayu urang nimba ngaran kolom. Awal blok bakal garis dimimitian ku SELECT, sarta tungtungna baris dimimitian ku FROM.

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

Ack leuwih hade tinimbang grep

Upami ekspresi pamilarian ngandung karakter khusus sapertos titik, kurung, sareng anu sanésna, maka supados henteu kabur nganggo , anjeun tiasa nganggo pilihan. -Q.

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

Ack leuwih hade tinimbang grep

Gawe sareng file

Kéngingkeun daptar file kalayan ekstensi khusus

ack -f --js

Ack leuwih hade tinimbang grep

Milarian sadaya file js anu namina dimimitian ku P* nganggo pilihan (-g).

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

Ack leuwih hade tinimbang grep

Konfigurasi

Utilitasna gaduh file config sorangan. Anjeun tiasa gaduh duanana config global pikeun pamaké (~ / .ackrc) sarta lokal pikeun folder husus (anjeun kudu nyieun file .ackrc dina folder).

Kalolobaan pilihan nu ditulis dina configs bisa sacara manual dieusian lamun disebut. Hayu urang nempo sababaraha di antarana.

Malire folder nalika milarian

--ignore-dir=dist

Hayu urang tambahkeun tipe file custom -vue.

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

Ayeuna anjeun tiasa nganggo pilihan --vue pikeun milarian file .vue. Salaku conto: ack --vue Aplikasi.
Anjeun tiasa nangtukeun daptar ekstensi pikeun pilihan ieu. Salaku conto, di dieu, nalika nganggo -vue, ieu bakal diolah:
file .js.

Malire file, contona minified *.min.js

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

setting

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

Pamasangan tina situs

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

Plugins pikeun éditor:

kacindekan

Ieu sanés sadayana kamungkinan. Daptar lengkep fungsi tiasa ditingali ku ngajalankeun:

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

Utilitas ack ngamungkinkeun anjeun pikeun milarian dina terminal langkung merenah sareng fleksibel. Sareng nganggo pipa (ack -C 10 halo | dunya ack) anjeun tiasa nyiptakeun gabungan anu kuat pikeun milarian sareng nyaring data dina sistem file sareng dina file sorangan.

sumber: www.habr.com

Tambahkeun komentar