Ack grep کان بهتر آهي

مان توھان کي ھڪڙي ڳولا جي افاديت بابت ٻڌائڻ چاھيان ٿو جيڪا زندگي کي تمام آسان بڻائي ٿي. جڏهن مان سرور تي پهچان ٿو ۽ مون کي ڪجهه ڳولڻ جي ضرورت آهي، پهرين شيء جيڪو آئون ڪريان ٿو اهو چيڪ ڪري ٿو ته ack نصب ٿيل آهي. هي افاديت grep لاء هڪ بهترين متبادل آهي، انهي سان گڏ ڪجهه حد تائين ڳولڻ ۽ wc. گريپ ڇو نه؟ 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 فائلون(--جي ايس)، فائلن کان سواء جن ۾ ڪجھ به نه مليو (-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 کان بهتر آهي

۽ جيڪڏهن توهان ٻنهي جي ضرورت آهي، پوء استعمال ڪريو (- کان)

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 کان بهتر آهي

ان کان علاوه، قوس استعمال ڪندي اسين مليل حصو چونڊي سگھون ٿا ۽ ان کي $[گروپ نمبر] ويريئبل ذريعي آئوٽ پٽ ۾ رسائي سگھون ٿا. مثال طور،

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 کان بهتر آهي

ڪنفگريشن

يوٽيلٽي کي پنهنجي 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

تبصرو شامل ڪريو