ืื ื ืจืืฆื ืืกืคืจ ืืื ืขื ืืื ืืืคืืฉ ืืื ืฉืืคืฉื ืืืื ืืช ืืืืื. ืืฉืื ื ืืืืข ืืฉืจืช ืืื ื ืฆืจืื ืืืคืฉ ืืฉืื, ืืืืจ ืืจืืฉืื ืฉืื ื ืขืืฉื ืืื ืืืืืง ืื ack ืืืชืงื. ืืื ืื ืืื ืชืืืืฃ ืืฆืืื ืขืืืจ grep, ืืื ืื find ื-wc ืืืืื ืืกืืืืช. ืืื ืื grep? ื-Ack ืืฉ ืืืืจืืช ืืคืืช ืืืชืจ ืืืืฅ ืืงืืคืกื, ืืคืฉืจืืืืช ืงืจืืืืช ืืืชืจ ืืืื, ืคืจื regex ืืืขืจืืช ืชืฆืืจื. ืื ืืชื ืืืื (ืืืื) ืืืคืฉ ืืจื ืืืจืืื ื, ืื ืืชื ืืืืื ืฆืจืื ืื ืกืืช ืืช ืื.
ืชืืื ืืช ืืกืืกืืืช
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/
ืืื ืืชื ืฆืจืื ืืช ืฉื ืืื, ืื ืืฉืชืืฉ (-ื)
ack --js --column -C 2 "query.once('" ./lib/
ืืฉ ืื ืืคืฉืจืืช (-v) ืืื ืืืคืื ืืช ืืืืคืืฉ, ืืืืืจ ืืืฆืื ืงืืืื ืฉืืื ื ืืืืืื ืืคืืก ื ืชืื.
ืืืขื ืจืืืื
Ack, ืฉืื ืืื grep, ืืฉืชืืฉ ืืืืืืืื ืชืืืื Perl.
ืขืืืจื ืื ืืชืจืื ืืืื; ืื ื ืื ืฆืจืื ืืืืืจ ืชืืืืจ ื ืคืจื ืืืืืืืื ืจืืืืจืืื.
ack 'vars+adds+'
ืืืืื ืืืจืืืช ืืืชืจ
ack '*s+[vd+.d+.d+]'
ืืขืชืื ืงืจืืืืช ืืชื ืจืืฆื ืืืฉืืืจ ืืชืืฆืืืช ืจืง ืืช ืื ืฉืืชืืื ืืชืื ืืช. ืืคืฉืจืืช --ืคืื ืชืขืืืจ ืืื (-o)
ack -o '*s+[vd+.d+.d+]'
ืื ืืกืฃ, ืืืืฆืขืืช ืกืืืจืืื ื ืืื ืืืืืจ ืืช ืืืืง ืฉื ืืฆื ืืืืฉืช ืืืื ืืคืื ืืจื ืืืฉืชื ื $[group number]. ืืืืืื,
ack --output='version is $1' '*s+[v(d+.d+.d+)]'
ืืืง ืืฉ ืืคืฉืจืืืืช ืฉืืืืฉืืืช --ืืืื-ืืชืืื ะธ ---range-end. ืื ืขืืืจืื ืืชื
ืื ืชืื ืื ืืืืืกื ืื ืื ืืฉืืจื ืืืช, ืืื ืืฆืืจื ืืจืืืช ืฉืืจืืช.
ืืืืืื, ืืฉ ืงืืืฅ ืขื ืงืื 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
OS Mac
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