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 ngadukung milarian dumasar kana jinis file. Contona, hayu urang manggihan versi modul dina file json.
ack --json '"version":s+"d+.d+.d+"'
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.
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
Salaku tambahan, urang tiasa kéngingkeun laporan lengkep ngeunaan jumlah kajadian dina unggal file nganggo (-l)
ack --js -w -cl mysql
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/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
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+'
Conto leuwih kompleks
ack '*s+[vd+.d+.d+]'
Mindeng rék ninggalkeun dina hasil ngan naon cocog template. Pilihan --output bakal ngabantosan di dieu (-o)
ack -o '*s+[vd+.d+.d+]'
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 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
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
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.
Gawe sareng file
Kéngingkeun daptar file kalayan ekstensi khusus
ack -f --js
Milarian sadaya file js anu namina dimimitian ku P* nganggo pilihan (-g).
ack -g --js '/Pa.+.js$'
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