ืืื ืืืืื ืฆื ืืขืจืฆืืืื ืืืจ ืืืขืื ืืืื ืืืื ื ืืฆื ืืืึธืก ืืืืขืจ ืกืืืคึผืืึทืคืืื ืืขืื. ืืืขื ืืื ืืึทืงืืืขื ืฆื ืื ืกืขืจืืืขืจ ืืื ืืื ืืึทืจืคึฟื ืฆื ืงืืงื ืคึฟืึทืจ ืขืคึผืขืก, ืืขืจ ืขืจืฉืืขืจ ืืึทื ืืื ืืึธื ืืื ืืฉืขืง ืืืื ack ืืื ืืื ืกืืึทืืืจื. ืืขื ื ืืฆื ืืื ืึท ืืืกืืขืฆืืืื ื ืคืึทืจืืืึทื ืคึฟืึทืจ grep, ืืื ืืืื ืืขืคึฟืื ืขื ืืื wc ืฆื ืขืืืขืืข ืืึธืก. ืคืืจืืืืก ื ืืฉื ืืจืขืค? Ack ืืื ื ืืกืขืจ ืกืขืืืื ืืก ืืืืก ืคืื ืื ืงืขืกืื, ืืขืจ ืืขื ืืฉ-ืืืื ืขืืืืืง ืึธืคึผืฆืืขืก, ืคึผืขืจื ืจืขืืขืงืก ืืื ืึท ืงืึธื ืคืื ืกืืกืืขื. ืืืื ืืืจ ืืื (ืืึทืจืื) ืืืื ืืืจื ืื ืืืึธืงืืึทื, ืืืจ ืืึธื ืืืฉืืืื ืคึผืจืืืืจื ืขืก.
ืืงืขืจืืืง ืคึฟืขืึดืงืืืื
ืึทืง ืืื ืจืขืงืืจืกืืืืข ืืืจื ืคืขืืืงืืึทื, ืืื ืฉืจืืืื ืืืืื ืืงืขืจืข ืึธืคึผืฆืืขืก ืืื ืฉืืขื ืืืง ืึท ืืืืข ืืขืืึทื ืง.
ืืืจ ืงืขื ืขื ื ืืฆื ืึท ืคืึธื -wืฆื ืืึธืื ืื ื ืืฆื ืฆื ืงืืงื ืคึฟืึทืจ ืึท ืืืึทืฉืคึผืื ืคืื ืืื ืืืขืจ ืืืกืืขืจ ืกืขืจืึทืื ืืึทื ืืืจื ืืืึธืจื ืืึทืื ืืจืื (ืืืืึทืก ืกืคึผืืืก, ืกืืึทืฉืื, ืืื"ื ื).
ack -w mysql
ืึทืง ืฉืืืฆื ืืืื ืืืจื ืืขืงืข ืืืคึผ. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืึธืืืจ ืืขืคึฟืื ืขื ืื ืืึธืืืืข ืืืขืจืกืืข ืืื 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, ื ืืฆื ืคึผืขืจื ืงืึทืืคึผืึทืืึทืืึทื ืืืืกืืจืืงื.
ืคึฟืึทืจ ืืืจ ืืึธืก ืืื ืึท ืืจืืืก ืคึผืืืก; ืืื ืืึธื ื ืื ืืึธืื ืฆื ืืขืืขื ืงืขื ืึท ืืึทืืื ืืขืจ ืกืื ืืึทืงืก ืคึฟืึทืจ ืจืขืืืืขืจ ืืืืกืืจืืงื.
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+)]'
ืึทืง ืืื ื ืืฆืืง ืึธืคึผืฆืืขืก --range-start ะธ --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 ืืขืงืขืก.
ืืืื ืึธืจืืจื ืืขืงืขืก, ืืืฉื ืืื ืืคืืขื *.ืืื.ืืืฉืก
--ignore-file=match:/.min.js$/
ืื ืกืืึทืืืจืื ื
ืกืขื ืืึธืก
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
ืื ืึทืง ื ืืฆื ืึทืืึทืื ืืืจ ืฆื ืืึทืื ืืืื ืืื ืืขืจ ืืืึธืงืืึทื ืืขืจ ืืึทืงืืืขื ืืื ืคืืขืงืกืึทืืึทื. ืืื ื ืืฆื ืจืขืจื - ืืื ืืข (ืึทืง -C 10 ืืขืื | ืึทืง ืืืขืื) ืืืจ ืงืขื ืขื ืืึทืื ืึท ืฉืืึทืจืง ืคืึทืจืืื ืื ืคึฟืึทืจ ืืืื ืืื ืคึฟืืืืจืืจืื ื ืืึทืื ืืื ืื ืืขืงืข ืกืืกืืขื ืืื ืืื ืื ืืขืงืขืก ืืื.
ืืงืืจ: www.habr.com