Ack د grep څخه غوره دی

زه غواړم تاسو ته د یوې لټون کارونې په اړه ووایم چې ژوند خورا ساده کوي. کله چې زه سرور ته ورسیږم او زه اړتیا لرم چې یو څه وګورم، لومړی شی چې زه یې کوم دا وګورئ چې ack نصب شوی که نه. دا افادیت د ګریپ لپاره عالي بدیل دی ، په بیله بیا یو څه موندل او wc. ولې grep نه؟ Ack د بکس څخه بهر ښه تنظیمات لري، ډیر د انسان د لوستلو وړ انتخابونه، پرل ریجیکس او یو ترتیب سیسټم. که تاسو غواړئ (باید) د ترمینل له لارې لټون وکړئ ، نو تاسو باید حتما هڅه وکړئ.

بنسټیز ځانګړتیاوې

Ack د ډیفالټ لخوا تکراری دی، او د لږو اختیارونو لیکل تل یو ښه نظر دی.

موږ کولی شو بیرغ وکاروو -wافادیت ته ووایاست چې زموږ د نمونې د مثال په لټه کې شي چې د کلمو حدود (سپینې ځای، سلیشونه، او داسې نور).

ack -w mysql

Ack د grep څخه غوره دی

Ack د فایل ډول سره د لټون ملاتړ کوي. د مثال په توګه، راځئ چې د json فایلونو کې د ماډل نسخه ومومئ.

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

Ack د grep څخه غوره دی

د ملاتړ شوي فایل ډولونو بشپړ لیست په کارولو سره لیدل کیدی شي:

ack --help-types

ډیری وختونه تاسو اړتیا لرئ حساب کړئ چې په لاګ فایل کې څو ځله جمله څرګندیږي ، د مثال په توګه ، د دې پوهیدلو لپاره چې سکریپټ څومره ډیټا پروسس کړې.

Ack د grep څخه غوره دی
موږ حساب کوو چې څومره ځله پروسه په test.log فایل کې پیښیږي ، د قضیې په پام کې نیولو سره (-i).

موږ کولی شو پیښې نه یوازې په یوه ځانګړي فایل کې، بلکې په یوه ډله کې حساب کړو. راځئ چې د mysql کلمې لپاره پخوانۍ لټون پای ته ورسوو: د کلمو د پیښو شمیر حساب کړئ () په *.js فایلونو کې(--js)، د فایلونو پرته چې په کې هیڅ شی ونه موندل شو (-h) او پایله یې خلاصه کړه.

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

Ack د grep څخه غوره دی

برسېره پردې، موږ کولی شو په هر فایل کې د پیښو شمیر په اړه مفصل راپور ترلاسه کړو (-l)

ack --js -w -cl mysql

Ack د grep څخه غوره دی

که تاسو د خپلې پلټنې لپاره اضافي شرایطو ته اړتیا لرئ، تاسو کولی شئ د ack څخه پوښتنه وکړئ
تر ( پورې) کرښې ښکاره کړئ-B) او وروسته (-Aد موندل شوي بیان څخه. د دې کولو لپاره ، تاسو اړتیا لرئ د اختیار وروسته د لینونو شمیر مشخص کړئ چې اړتیا ورته ښودل کیږي.

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

Ack د grep څخه غوره دی

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

Ack د grep څخه غوره دی

او که تاسو دواړو ته اړتیا لرئ نو بیا وکاروئ (-FROM)

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

یو اختیار هم شتون لري (-v) د لټون د بدلولو لپاره، د بیلګې په توګه هغه لیکې وښایه چې ورکړل شوې بڼه نلري.

منظم بیان

Ack، د grep برعکس، د پرل مطابقت لرونکي څرګندونې کاروي.
زما لپاره دا یو لوی پلس دی؛ زه اړتیا نلرم چې د منظم بیان لپاره جلا ترکیب یاد کړم.

ack 'vars+adds+'

Ack د grep څخه غوره دی

ډیر پیچلی مثال

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

Ack د grep څخه غوره دی

ډیری وختونه تاسو غواړئ په پایلو کې یوازې هغه څه پریږدئ چې د ټیمپلیټ سره سمون لري. د --output اختیار به دلته مرسته وکړي (-o)

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

Ack د grep څخه غوره دی

برسېره پردې، د قوسونو په کارولو سره موږ کولی شو موندل شوې برخه وټاکو او د $[group number] متغیر له لارې یې په محصول کې لاسرسی ومومئ. د مثال په ډول،

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

Ack د grep څخه غوره دی

Ack ګټور انتخابونه لري -- رینج - پیل и -- رینج - پای. دوی کله چې مرسته کوي
معلومات په یوه کرښه کې نه، بلکې په څو کرښو کې ساتل کیږي.

د مثال په توګه، د sql کوډ سره یو فایل شتون لري

Ack د grep څخه غوره دی

راځئ چې د کالم نومونه استخراج کړو. د بلاک پیل به یوه کرښه وي چې د SELECT سره پیل کیږي، او پای به یوه کرښه وي چې د FROM سره پیل کیږي.

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

Ack د grep څخه غوره دی

که د لټون بیان ځانګړي حروف ولري لکه دوره، قوس، او نور، نو د دې لپاره چې د دوی په کارولو سره وتښتي، تاسو کولی شئ اختیار وکاروئ. -Q.

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

Ack د grep څخه غوره دی

د فایلونو سره کار کول

د ځانګړي توسیع سره د فایلونو لیست ترلاسه کړئ

ack -f --js

Ack د grep څخه غوره دی

ټولې js فایلونه ومومئ چې نوم یې د P * سره پیل کیږي د اختیار په کارولو سره (-g).

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

Ack د grep څخه غوره دی

شکل بندي

یوټیلټي خپل تشکیل فایل لري. تاسو کولی شئ د کارونکي لپاره دواړه نړیوال ترتیب ولرئ (~/.ackrc) او د ځانګړي فولډر لپاره یو محلي (تاسو اړتیا لرئ په فولډر کې د .ackrc فایل جوړ کړئ).

ډیری اختیارونه چې په تشکیلاتو کې لیکل شوي په لاسي ډول مشخص کیدی شي کله چې ویل کیږي. راځئ چې یو څو یې وګورو.

د لټون کولو پر مهال فولډر له پامه غورځول

--ignore-dir=dist

راځئ چې د دودیز فایل ډول اضافه کړو -vue.

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

اوس تاسو کولی شئ د فایلونو لټون کولو لپاره --vue اختیار وکاروئ .vue. د مثال په ډول: ack --vue اپلیکیشن.
تاسو کولی شئ د دې اختیار لپاره د توسیعونو لیست مشخص کړئ. د مثال په توګه، دلته، کله چې -vue کاروئ، لاندې به پروسس شي:
.js فایلونه.

فایلونه له پامه غورځول، د بیلګې په توګه minified *.min.js

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

د جوړولو

CentOS

yum update -y && yum install ack -y

د وبنټو

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 افادیت تاسو ته اجازه درکوي چې په ټرمینل کې لټون ډیر اسانه او انعطاف منونکي کړي. او د پایپ لاین په کارولو سره (ack -C 10 سلام | ack نړۍ) تاسو کولی شئ د فایل سیسټم او پخپله فایلونو کې د ډیټا لټون او فلټر کولو لپاره یو پیاوړی ترکیب رامینځته کړئ.

سرچینه: www.habr.com

Add a comment