αααα»αα ααααααΆααα’αααα’αααΈα§αααααααααααααα½αααααα½αααααα½ααααααΈαα·αα αα ααααααα»ααα ααααααΆαααΈααα α αΎααααα»αααααΌαααααΎαα’αααΈαα½α α’αααΈαααααααΌαααααΎααααΌαααΊαα·αα·αααααΎαααΆααΎ ack ααααΌαααΆαααα‘αΎαα¬α’ααα α§αααααααααΎααααΆαααααααΊααΆααΆααααα½αααααα’αααααΆαα grep ααααΌα ααΆααΆαααααααα αα·α wc αααα»αααααα·ααα½αα ααα½αα α ααα»α’αααΈαα·α grep? Ack ααΆαβααΆαβαααααβααα’βααΆαβαα βαααα βαααα’αα, αααααΎαβαααβααα»αααβα’αΆα βα’αΆαβααΆαβα αααΎα, perl regex αα·αβαααααααα config α ααααα·αααΎα’αααα αΌαα α·ααα (ααααΌααα) αααααααααΆααααααααΆααΈα αααα’ααααα½αααααΆαααααααΆα
αααααααα·αααααΆααΌαααααΆα
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 ααααΎαααααααααααααΌαααααΆααΉα 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+)]'
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 α
αα·αα’αΎααΎα―αααΆα α§ααΆα ααα ααααα½α *.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 ααααΆααα½α | αα·ααα’αα) α’αααα’αΆα αααααΎαααΆααα½ααααα αΌαααααΆααααΆαα₯αααα·αααααααΆααααΆαααααααα αα·ααααααα·αααααααα αααα»αααααααααα―αααΆα αα·ααααα»αα―αααΆαααααααα½αα―αα
ααααα: www.habr.com