一位同事试图在他的Windows机器上使用ack(一个Perl程序),在Linux下尝试过它,并决定他肯定想要使用它.他设法在他的机器上安装了Strawberry Perl,但似乎无法弄清楚如何从命令提示符下运行ack.他试着编辑#!但是我知道这不行.我很确定Strawberry perl是他的PATH.
在使用Strawberry的Windows上运行PATH中的常规Perl程序需要做什么?
更新:我在网上看到一些关于PATHEXT变量的信息,但还不够.
使用ack(有时打包为ack-grep)我知道我可以通过执行以下操作找到包含特定字符串的路径:
ack -g somestring
但是,如果我只想要文件名中包含"somestring"的文件呢?
我想查找字符串"methodname(",但我无法逃避"(".我怎么能得到
grep methodname( *
Run Code Online (Sandbox Code Playgroud)
要么
ack-grep methodname( *
Run Code Online (Sandbox Code Playgroud)
上班?
我想在文件中找到包含两个单词的行,word_1并按word_2顺序排列,例如在Line A下面,但不是在Line B或Line C:
Line A: ... word_1 .... word_2 ....
Line B: ... word_1 ....
Line C: ... word_2 ....
Run Code Online (Sandbox Code Playgroud)
我试过了
$ack '*word_1*word_2'
$ack '(word_1)+*(word_2)+'
Run Code Online (Sandbox Code Playgroud)
以及在^正则表达式开头附加的相同命令(试图遵循Perl正则表达式语法).
这些命令都不会返回我感兴趣的文件或行.
我究竟做错了什么?
谢谢!
如何通过带有ack的 RegEx忽略特定目录?
我可以使用该--ignore-dir选项,但这不允许我指定RegEx.我希望能够忽略任何目录,里面有句话test或tests在其名称或更复杂的图案.
我也试过了一个负面的lookbehind via
ack -G '(?<!test)' pattern
Run Code Online (Sandbox Code Playgroud)
但这不起作用.它不排除test目录.
使用Silver Searcher,我该如何搜索:
其他偏好:希望通过dotfiles进行不区分大小写的搜索和搜索.
尝试使用这个别名没有太多运气:
alias search="ag -g $1 --smart-case --hidden && ag --smart-case --hidden $1"
我有一些fileName*-c.css和*-gen.css的CSS文件,我想从ack-grep搜索中忽略它们.
我看到--type-set = TYPENAME = .extension不接受像*-c.css这样的正则表达式过滤器,任何想法如何解决这个问题?
我的目标是<?=用ack 找到所有" "事件.我怎样才能做到这一点?
ack "<?="
Run Code Online (Sandbox Code Playgroud)
不行.请告诉我如何解决逃避问题?
我正试图找到一种方法
grep -o "somepattern"
这给了我类似的东西
html/file.js
2:somepattern
5:somepattern
Run Code Online (Sandbox Code Playgroud)
但真正好的是在比赛之前和/或之后有几个角色(可能是20个).
我知道有一种方法可以在(上下文)之前和之后显示行,但有没有办法按字符显示上下文?例如
html/file.js
2:function helloWorld(somepattern) {
5: var foo = somepattern;
Run Code Online (Sandbox Code Playgroud)
我问的原因是,如果我递归地grep并用匹配命中一个缩小的文件,它会打印整个文件,这非常烦人.
我基本上只想做ack foo*.citrus并让ack向下钻取并在当前目录及下面的所有Citrus文件中找到字符串'foo'.麻烦的是,如果当前目录中没有任何Citrus文件,这将不起作用.
我试过乱用-G但没有成功.我是否真的需要在.ackrc中添加文件类型以限制搜索到具有给定扩展名的文件?