由于某种原因,管道&重定向操作符(' |'和'>')在我的MacOS中停止工作。 多年来,我一直在使用像
这样的命令find . -name "*.js" | xargs grep "import" > ../out.txt
在目录树中查找字符串出现次数。但最近我收到了以下错误:
grep: unrecognized option `--out-file'
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
单独执行命令
find . -name "*.js" > ../out.txt
和
grep "import" *.js > ../out.txt
工作得很好。所以问题是以某种方式管道' |'和重定向'>'停止了合作。 有什么想法吗?
我正在运行Os X Yosemite(10.10.5)
答案 0 :(得分:1)
“find ... | xargs grep ...”运算符组合对传递的文件名很敏感。如果文件名可以被识别为命令(在我的情况下为grep)选项,则该命令会将其视为选项,而不是文件名。
仅提供一般信息,在“babel”node.js模块中找到了有问题的文件。
答案 1 :(得分:0)
某些文件名可以被识别为grep的选项(--out-file)。 只需使用-print0选项进行查找。
像这样:
public void makeIcons(Coordinate obj){
Icon temp = new Icon(obj);
points.add(temp);
//add the temp JComponent to this JPanel
this.add(temp);
temp.paintComponent(this.getGraphics());
revalidate();
}