Bestätige besser grep

Ich möchte über ein Suchprogramm sprechen, das das Leben erheblich vereinfacht. Wenn ich zum Server komme und nach etwas suchen muss, überprüfe ich zuerst, ob ack installiert ist. Dieses Dienstprogramm ist ein großartiger Ersatz für grep sowie find und wc in gewissem Maße. Warum nicht grep? Ack hat sofort bessere Einstellungen, besser lesbare Optionen, Perl-Stammgäste und ein Konfigurationssystem. Wenn du liebst(müssen, zu ... haben) durchsuchen Sie das Terminal, dann sollten Sie es auf jeden Fall versuchen.


Grundfunktionen


Ack ist standardmäßig rekursiv und das Schreiben von weniger Optionen ist immer gut.


Wir können das Flag -w verwenden , um das Dienstprogramm anzuweisen, nach einer Instanz unserer Vorlage zu suchen, die von Wortgrenzen (Leerzeichen, Schrägstrich usw.) umgeben ist.


ack -w mysql


Ack unterstützt die Suche nach Dateitypen. Suchen Sie beispielsweise die Version des Moduls in JSON-Dateien.


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


Eine vollständige Liste der unterstützten Dateitypen finden Sie unter:


ack --help-types

Oft muss berechnet werden, wie oft eine Phrase in einer Protokolldatei vorkommt, um beispielsweise zu verstehen, wie viele Daten das Skript verarbeitet hat.



Wir zählen, wie oft der Prozess in der Datei test.log stattfindet, ohne die Groß- und Kleinschreibung zu beachten ( -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