ජීවිතය බෙහෙවින් සරල කරන එක් සෙවුම් උපයෝගිතා ගැන මට ඔබට පැවසීමට අවශ්යයි. මම සේවාදායකයට ගිය විට මට යමක් සෙවීමට අවශ්ය වූ විට, මම මුලින්ම කරන්නේ ack ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කිරීමයි. මෙම උපයෝගීතාව grep සඳහා විශිෂ්ට ආදේශකයක් මෙන්ම යම් දුරකට find සහ wc වේ. ඇයි grep නැත්තේ? Ack සතුව පෙට්ටියෙන් පිටත වඩා හොඳ සැකසුම්, මිනිසුන්ට කියවිය හැකි විකල්ප, perl regex සහ වින්යාස පද්ධතියක් ඇත. ඔබ ටර්මිනලය හරහා සෙවීමට කැමති නම් (අවශ්ය නම්), ඔබ අනිවාර්යයෙන්ම එය උත්සාහ කළ යුතුය.
මූලික ලක්ෂණ
Ack පෙරනිමියෙන් පුනරාවර්තී වන අතර විකල්ප අඩුවෙන් ලිවීම සැමවිටම හොඳ අදහසකි.
අපට කොඩියක් භාවිතා කළ හැකිය -wවචන මායිම් වලින් (සුදු අවකාශය, slashes, ආදිය) වට වූ අපගේ රටාවේ උදාහරණයක් සෙවීමට උපයෝගීතාවයට පැවසීමට.
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
ඔබට ඔබගේ සෙවීම සඳහා අමතර සන්දර්භය අවශ්ය නම්, ඔබට ඇක් ඇසිය හැක
දක්වා රේඛා පෙන්වන්න (-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 '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+)]'
ඇක් ප්රයෝජනවත් විකල්ප ඇත --පරාසය-ආරම්භය и --පරාසය-අවසානය. ඔවුන් උදව් කරන විට
දත්ත ගබඩා කර ඇත්තේ එක් පේළියක නොව, බහු රේඛා ආකාරයෙන්ය.
උදාහරණයක් ලෙස, sql කේතය සහිත ගොනුවක් තිබේ
තීරු නාම උපුටා ගනිමු. බ්ලොක් එකේ ආරම්භය SELECT වලින් ආරම්භ වන රේඛාවක් වන අතර අවසානය FROM වලින් ආරම්භ වන රේඛාවක් වනු ඇත.
ack --range-start ^SELECT --range-end ^FROM 'td+.' ./test.sql
සෙවුම් ප්රකාශනයේ කාලපරිච්ඡේදයක්, වරහන් සහ වෙනත් විශේෂ අක්ෂර අඩංගු නම්, ඒවා භාවිතයෙන් ගැලවී නොයෑම සඳහා, ඔබට විකල්පය භාවිතා කළ හැක. -Q.
# Поиск с экранированием
ack --json 'mysql.'
# Поиск без экранирования
ack --json -Q mysql.
ගොනු සමඟ වැඩ කිරීම
විශේෂිත දිගුවක් සහිත ගොනු ලැයිස්තුවක් ලබා ගන්න
ack -f --js
විකල්පය භාවිතා කර P* වලින් ආරම්භ වන සියලුම js ගොනු සොයන්න (-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
මැක් 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 -C 10 හලෝ | ack ලෝකය) ඔබට ගොනු පද්ධතියේ සහ ගොනු තුළම දත්ත සෙවීම සහ පෙරීම සඳහා බලවත් සංයෝජනයක් නිර්මාණය කළ හැකිය.
මූලාශ්රය: www.habr.com