زه غواړم تاسو ته د یوې لټون کارونې په اړه ووایم چې ژوند خورا ساده کوي. کله چې زه سرور ته ورسیږم او زه اړتیا لرم چې یو څه وګورم، لومړی شی چې زه یې کوم دا وګورئ چې ack نصب شوی که نه. دا افادیت د ګریپ لپاره عالي بدیل دی ، په بیله بیا یو څه موندل او wc. ولې grep نه؟ Ack د بکس څخه بهر ښه تنظیمات لري، ډیر د انسان د لوستلو وړ انتخابونه، پرل ریجیکس او یو ترتیب سیسټم. که تاسو غواړئ (باید) د ترمینل له لارې لټون وکړئ ، نو تاسو باید حتما هڅه وکړئ.
بنسټیز ځانګړتیاوې
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
که تاسو د خپلې پلټنې لپاره اضافي شرایطو ته اړتیا لرئ، تاسو کولی شئ د ack څخه پوښتنه وکړئ
تر ( پورې) کرښې ښکاره کړئ-B) او وروسته (-Aد موندل شوي بیان څخه. د دې کولو لپاره ، تاسو اړتیا لرئ د اختیار وروسته د لینونو شمیر مشخص کړئ چې اړتیا ورته ښودل کیږي.
# 2 строки до
ack --js --column -B 2 "query.once('" ./lib/
# 2 строки после
ack --js --column -A 2 "query.once('" . /lib/
او که تاسو دواړو ته اړتیا لرئ نو بیا وکاروئ (-FROM)
ack --js --column -C 2 "query.once('" ./lib/
یو اختیار هم شتون لري (-v) د لټون د بدلولو لپاره، د بیلګې په توګه هغه لیکې وښایه چې ورکړل شوې بڼه نلري.
منظم بیان
Ack، د grep برعکس، د پرل مطابقت لرونکي څرګندونې کاروي.
زما لپاره دا یو لوی پلس دی؛ زه اړتیا نلرم چې د منظم بیان لپاره جلا ترکیب یاد کړم.
ack 'vars+adds+'
ډیر پیچلی مثال
ack '*s+[vd+.d+.d+]'
ډیری وختونه تاسو غواړئ په پایلو کې یوازې هغه څه پریږدئ چې د ټیمپلیټ سره سمون لري. د --output اختیار به دلته مرسته وکړي (-o)
ack -o '*s+[vd+.d+.d+]'
برسېره پردې، د قوسونو په کارولو سره موږ کولی شو موندل شوې برخه وټاکو او د $[group number] متغیر له لارې یې په محصول کې لاسرسی ومومئ. د مثال په ډول،
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
Ack ګټور انتخابونه لري -- رینج - پیل и -- رینج - پای. دوی کله چې مرسته کوي
معلومات په یوه کرښه کې نه، بلکې په څو کرښو کې ساتل کیږي.
د مثال په توګه، د sql کوډ سره یو فایل شتون لري
راځئ چې د کالم نومونه استخراج کړو. د بلاک پیل به یوه کرښه وي چې د SELECT سره پیل کیږي، او پای به یوه کرښه وي چې د FROM سره پیل کیږي.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./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 اپلیکیشن.
تاسو کولی شئ د دې اختیار لپاره د توسیعونو لیست مشخص کړئ. د مثال په توګه، دلته، کله چې -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