مان توھان کي ھڪڙي ڳولا جي افاديت بابت ٻڌائڻ چاھيان ٿو جيڪا زندگي کي تمام آسان بڻائي ٿي. جڏهن مان سرور تي پهچان ٿو ۽ مون کي ڪجهه ڳولڻ جي ضرورت آهي، پهرين شيء جيڪو آئون ڪريان ٿو اهو چيڪ ڪري ٿو ته ack نصب ٿيل آهي. هي افاديت grep لاء هڪ بهترين متبادل آهي، انهي سان گڏ ڪجهه حد تائين ڳولڻ ۽ wc. گريپ ڇو نه؟ Ack ۾ دٻي کان ٻاهر سٺيون سيٽنگون آهن، وڌيڪ انساني پڙهڻ جا اختيار، پرل ريجڪس ۽ هڪ ترتيب سسٽم. جيڪڏھن توھان چاھيو ٿا (گھڻو آھي) ٽرمينل ذريعي ڳولھيو، ته توھان کي ضرور ڪوشش ڪرڻ گھرجي.
بنيادي خاصيتون
Ack ڊفالٽ طور تي بار بار آهي، ۽ گهٽ اختيارن کي لکڻ هميشه هڪ سٺو خيال آهي.
اسان هڪ پرچم استعمال ڪري سگهون ٿا -wافاديت کي ٻڌائڻ لاءِ اسان جي نمونن جو مثال ڳولڻ لاءِ جيڪو لفظن جي حدن (سفيد اسپيس، سليشس، وغيره) سان گھريل آهي.
ack -w mysql
Ack فائل جي قسم جي ڳولا جي حمايت ڪري ٿو. مثال طور، اچو ته ماڊل ورجن ڳوليون json فائلن ۾.
ack --json '"version":s+"d+.d+.d+"'
سپورٽ ٿيل فائل جي قسمن جي مڪمل فهرست استعمال ڪندي ڏسي سگھجي ٿو:
ack --help-types
گهڻو ڪري توهان کي ڳڻڻ جي ضرورت آهي ته ڪيترا ڀيرا هڪ جملي لاگ فائل ۾ ظاهر ٿئي ٿي، مثال طور، سمجهڻ لاءِ ته اسڪرپٽ ڪيتري ڊيٽا کي پروسيس ڪيو.
اسان شمار ڪريون ٿا ته ڪيترا ڀيرا عمل ٿئي ٿو test.log فائل ۾، اڪائونٽ ڪيس ۾ نه ورتو وڃي (-i).
اسان واقعن کي صرف هڪ مخصوص فائل ۾ نه، پر هڪ گروپ ۾ شمار ڪري سگهون ٿا. اچو ته لفظ mysql جي پوئين ڳولها کي حتمي شڪل ڏيو: لفظن جي واقعن جو تعداد شمار ڪريو (-س) ۾ *.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/
۽ جيڪڏهن توهان ٻنهي جي ضرورت آهي، پوء استعمال ڪريو (- کان)
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+]'
ان کان علاوه، قوس استعمال ڪندي اسين مليل حصو چونڊي سگھون ٿا ۽ ان کي $[گروپ نمبر] ويريئبل ذريعي آئوٽ پٽ ۾ رسائي سگھون ٿا. مثال طور،
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$'
ڪنفگريشن
يوٽيلٽي کي پنهنجي config فائل آهي. توھان ٻئي ڪري سگھوٿا صارف لاءِ عالمي ترتيب (~/.ackrc) ۽ ھڪڙي مخصوص فولڊر لاءِ مقامي ھڪڙي (توهان کي فولڊر ۾ .ackrc فائل ٺاهڻ جي ضرورت آھي).
گھڻا اختيار جيڪي configs ۾ لکيل آھن دستي طور تي بيان ڪري سگھجن ٿيون جڏھن سڏيو وڃي ٿو. اچو ته انهن مان چند تي نظر.
فولڊر کي نظر انداز ڪريو جڏهن ڳولها
--ignore-dir=dist
اچو ته ڪسٽم فائل جو قسم شامل ڪريون -vue.
--type-add=vue:ext:js,vue
هاڻي توهان فائلن کي ڳولڻ لاءِ --vue آپشن استعمال ڪري سگهو ٿا .ويو. مثال طور: ack -vue ايپ.
توھان وضاحت ڪري سگھوٿا ھن اختيار لاءِ توسيع جي ھڪڙي فهرست. مثال طور، هتي، جڏهن استعمال ڪندي -vue، هيٺ ڏنل عمل ڪيو ويندو: js فائلون.
فائلن کي نظر انداز ڪريو، مثال طور minified *.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
ڳوڙهي او ايس
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 هيلو | هڪ دنيا) توهان فائل سسٽم ۽ فائلن ۾ ڊيٽا کي ڳولڻ ۽ فلٽر ڪرڻ لاء هڪ طاقتور گڏيل ٺاهي سگهو ٿا.
جو ذريعو: www.habr.com