Ack grep lebih baik

Saya ingin berbicara tentang satu utilitas pencarian yang sangat menyederhanakan kehidupan. Ketika saya sampai ke server dan saya perlu mencari sesuatu, hal pertama yang saya lakukan adalah memeriksa apakah ACK diinstal. Utilitas ini adalah pengganti yang bagus untuk grep, serta menemukan dan wc sampai batas tertentu. Kenapa tidak grep? Ack memiliki pengaturan yang lebih baik di luar kotak, lebih banyak opsi yang dapat dibaca manusia, perl reguler, dan sistem konfigurasi. Jika kamu cinta(harus) mencari melalui terminal, maka Anda pasti harus mencobanya.


Fitur dasar


Ack bersifat rekursif secara default, dan menulis lebih sedikit opsi selalu bagus.


Kita dapat menggunakan flag -w untuk memberi tahu utilitas untuk mencari contoh templat kita, dikelilingi oleh batas kata (spasi putih, garis miring, dll.).


ack -w mysql


Ack mendukung pencarian jenis file. Misalnya, temukan versi modul dalam file json.


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


Daftar lengkap jenis file yang didukung dapat ditemukan dengan:


ack --help-types

Seringkali perlu untuk menghitung berapa kali frasa muncul dalam file log, misalnya, untuk memahami berapa banyak data yang diproses skrip.



Kami menghitung berapa kali proses terjadi dalam file test.log, bukan case sensitive ( -i ).


, . mysql: - (-) *.js (--js), (-h) .


#     
ack --js -w mysql
#    
ack --js -wch mysql


, - (-l)


ack --js -w -cl mysql


c, ack
(-B) (-A) . - , .


# 2   
ack --js --column -B 2 "query.once\('" ./lib/


# 2   
ack --js --column -A 2 "query.once\('" . /lib/


, (-)


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

(-v) , . .



Ack grep Perl .
, .


ack 'var\s+add\s+'



ack '\*\s+\[v\d+\.\d+\.\d+\]'


, . --output (-o)


ack -o '\*\s+\[v\d+\.\d+\.\d+\]'


, output $[ ]. ,


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


Ack --range-start --range-end. ,
, .


, sql



. SELECT, FROM.


ack --range-start ^SELECT --range-end ^FROM 't\d+\.' ./test.sql


, , \, -Q.


#    
ack --json 'mysql\.'    
#   
ack --json -Q mysql.




ack -f --js


js P*, (-g).


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



. (~/.ackrc), ( .ackrc).


, . .



--ignore-dir=dist

--vue.


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

--vue, .vue. : ack --vue App.
. , --vue
.js .


, , *.min.js


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


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


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

:




. , :


ack –-help
# 
ack --man

ack . pipeline (ack -C 10 hello | ack world) .


All Articles