windows grep将输出重定向到文件

时间:2013-10-25 06:40:23

标签: windows grep io-redirection

我正在使用Windows,我想从目录中找到所有字符串beetwen引号。例如,如果我有这个:

string s = "Hello World!"

grep命令应该返回“Hello World!”。 我是这样做的:

grep -Roe \"[^\"]*\" directory

我需要将输出重定向到文件,但是当我重定向输出时,就像这个“grep -Roe \”[^ \“] * \”目录>记录“我收到以下错误:

>: Invalid argument
log: No such file or directory

您知道如何解决此问题并重定向输出?

1 个答案:

答案 0 :(得分:0)

这是一个非常古老的问题,到目前为止,OP已经解决了这个问题......但是对于子孙后代,值得注意的是问题与编译器约定有关(参见this question ,并找到答案#34; 你没有使用Unix shell。引用不同")。

正如您已经发现的那样,虽然您的表达式在命令行中可以正常工作,但当它与重定向结合使用时,它会被错误地解析。

解决方案是使用插入符号^)来避免双引号,而不是反斜杠(\)。你也需要逃脱插入符号(带插入符号)。您还应该将整个搜索表达式用单引号括起来。

使用插入符号转义(并封装在''中)重新制定命令会产生

grep -Roe '^"[^^^"]*^"' directory > log

我使用这一点来从遗留的HTML文件中获取样式属性(基本上是由前编码员编写的,他们并不相信将内容与演示文稿分开) - 在这种情况下我使用

grep -iown 'style=^"[^^^"]*^"' index.html > styles.txt

它就像一个魅力。

想象一个代码存储库,其中HTML文件中的每个文件,甚至p标记都类似于<p style="margin-left:20px;margin-top:20px; font: normal 12px Arial; color#FFFFFF">。啧。