Ack grep أفضل

أريد أن أتحدث عن أداة بحث واحدة تبسط الحياة إلى حد كبير. عندما أصل إلى الخادم وأحتاج إلى البحث عن شيء ما ، فإن أول شيء أفعله هو التحقق من تثبيت ack. تعد هذه الأداة بديلاً رائعًا لـ grep ، بالإضافة إلى البحث والمرح إلى حد ما. لماذا لا تتسلل؟ يحتوي Ack على إعدادات أجمل خارج الصندوق ، والمزيد من الخيارات التي يمكن قراءتها من قبل الإنسان ، والنظام العادي لـ perl ، ونظام التكوين. إذا كنت تحب(يجب أن) البحث من خلال الجهاز ، فعليك بالتأكيد تجربته.


الميزات الأساسية


Ack عودي بشكل افتراضي ، وكتابة خيارات أقل جيدة دائمًا.


يمكننا استخدام علامة -w لإخبار الأداة المساعدة بالبحث عن مثيل من قالبنا ، محاطًا بحدود الكلمات (أحرف المسافة البيضاء ، الشرطة المائلة ، وما إلى ذلك).


ack -w mysql


يدعم Ack عمليات البحث عن نوع الملف. على سبيل المثال ، ابحث عن إصدار الوحدة النمطية في ملفات json.


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


يمكن العثور على قائمة كاملة بأنواع الملفات المدعومة مع:


ack --help-types

غالبًا ما يكون من الضروري حساب عدد المرات التي تحدث فيها عبارة في ملف سجل ، على سبيل المثال ، لفهم مقدار البيانات التي يعالجها البرنامج النصي.



نحن نحسب عدد المرات التي تحدث فيها العملية في ملف test.log ، وليس حساسًا لحالة الأحرف ( -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