【发布时间】:2018-11-15 11:16:31
【问题描述】:
我正在 cmder-Windows10 上尝试来自 here 的 awk oneliner:
awk '/> \\box.=/,/^$/{print}'
检查日志文件。但我收到此错误:
指定的路径无效。
我知道正则表达式的基础知识,但我不明白上面的命令应该做什么。如果您能帮助我,我将不胜感激:
- 详细说明上面的命令以及它应该返回什么?如果我意识到也许我可以在cmder 之外使用一些本机Windows 命令来复制它。可能使用
findstr? - 为什么会出现这个错误?以及是否/如何编辑命令来解决问题?
P.S.感谢this post,我能够运行命令awk '/box.=/,/^\r\n/' foo,并且它可以正常工作,返回预期返回的内容。但我仍然不知道为什么原来的命令会返回那个错误。
【问题讨论】:
-
它尝试匹配和打印 2 个模式之间的行。模式 1 是
> \box.=,其中.将匹配任何字符。模式 2 是一个空行,即^$ -
我不明白这些部分:
>(大于空格)和/,/(斜线逗号)。"(逗号空格)是怎么来的? -
好吧,我的日志文件太长了,而且它可能还包含一些我不应该在 pastebin 或类似的地方公开分享的机密信息。这一刻我只想明白上面的命令是什么意思。另外,这实际上可以在 cmder 内的任意路径中复制。所以不管我有什么日志文件。
-
让我们分解一下。首先上面的命令是一个有效的
awk命令吗?如果是,为什么它会返回该错误?如果模式不存在,它必须不返回任何内容,我错了吗? -
来自您的链接:您可以将结果传送到
awk '/> \\box.=/,/^$/{print}'您如何使用该awk?请准确的命令行。