- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
Windows 命令行,我想在文件中搜索以以下开头的所有行:
# NNN "<file>.inc"
哪里NNN
是一个数字,<file>
任何字符串。
我想使用 findstr,因为我不能要求脚本的用户安装 ack。
这是我想出的表达方式:
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*.inc" all_pre.txt
要搜索的文件是all_pre.txt
.
到目前为止一切顺利。现在我想将它传递给另一个命令,例如 more
.
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9]*.inc" all_pre.txt | more
此结果与上一个命令的输出相同,但每行的文件名作为前缀 (all_pre.txt)。
然后是:
FINDSTR: cannot open |
FINDSTR: cannot open more
为什么管道不工作?
all_pre.txt 内容的截图
# 1 "main.ss"
# 7 "main.ss"
# 11 "main.ss"
# 52 "main.ss"
# 1 "Build_flags.inc"
# 7 "Build_flags.inc"
# 11 "Build_flags.inc"
# 20 "Build_flags.inc"
# 45 "Build_flags.inc(function a called from b)"
编辑:我还需要转义正则表达式中的点。不是问题,但值得一提。
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*\.inc" all_pre.txt
在 Frank Bollack 之后编辑:
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*\.inc.*" all_pre.txt | more
不工作,尽管(我认为)它应该查找与之前相同的字符串,然后查找任何字符多次。那必须包括 "
,对吧?
最佳答案
您的搜索模式中缺少尾随 \"
。
findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9]*.inc\"" all_pre.txt | more
以上对我有用。
编辑:
findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9]*\.inc.*\"" all_pre.txt | more
这个更新后的搜索字符串现在将匹配您示例中的这些行:
# 1 "Build_flags.inc"
# 7 "Build_flags.inc"
# 11 "Build_flags.inc"
# 20 "Build_flags.inc"
# 45 "Build_flags.inc(function a called from b)"
编辑:
要避免 findstr
中的这个“错误”,您可以像这样将搜索放入批处理文件中:
@findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*\.inc" %1
将其命名为 myfindstr.bat
并这样调用它:
myfinsdtr all_pre.txt | more
您现在可以像往常一样使用管道和重定向运算符。
希望对您有所帮助。
关于windows - 管道 findstr 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737107/
我的批处理程序 FINDSTR /C:"Result Comparison failure" %tmp_result_file% 我想做以下操作,将上述命令的结果设置为变量。 如果找到,将第一行设
我在文本文件(test.txt)中有以下字符串: BLA BLA BLA BLA BLA Found 11 errors and 7 warnings 我执行以下命令: findstr /r "[0-
今天从命令行提示符启动 JBoss 时出现以下错误: 'findstr' is not recognized as an internal or external command 最佳答案 请谷歌一下
我不明白; 搜索 用法很清楚,但我无法让它工作。我要搜索 在文本文件上,使用 ^和 $特点。这边走: findstr /C:"^test$" test.txt 我以多种方式制作了文件 (test.tx
我正在尝试编写一个 findstr 正则表达式,它将使用 subversion 查找本地和远程修改的文件。鉴于下面的示例输出,我想匹配那些以“M”作为第一个或第二个字符的行。还会有其他人,但这是我的起
我做了一段批处理代码,我认为这会奏效。我在想这段代码在做什么?我有一些插件,我想测试部署是否正确。所以我从plugins.txt 中得到了pluginlink。然后我用java语句从SVN获取插件。我
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我是 Windows 批处理编程和 Stack Overflow 的新手,所以如果我问任何对你们经验丰富、才华横溢的人来说显而易见的问题,请原谅我。我正在使用 Windows 批处理 (.bat) 使
我正在使用 findstr 及其 /r 标志进行一些字符串验证,以允许使用正则表达式。特别是我想验证整数。 正则表达式 ^[0-9][0-9]*$ 对于非负数效果很好,但由于我现在也支持负数,所以我尝
我有两个文件: 1.txt: abc def 2.txt: abc 请注意,2.txt 仅包含 3 个字符,没有空行。现在,如果我这样做: findstr /S /I /L /A:02 "abc" *
我只想在他的文本文件中找到特定的行,所以我认为使用范围是个好主意。但我似乎可以在网上找到任何教程。请帮助.. 文本文件的例子 XXX scan report for 192.0.0.0 example
Windows 中的批处理文件有时会让人感到困惑。怎么办 findstr "^" 相当于找一个空文件夹,当^表示行首? for /d /r %1 %%A in (.) do ( dir /ad
我正在尝试使用 findstr 代替 grep 在准系统的 vanilla windows 框上(遗憾的是这是一个要求)。我有一些相对较大的文件 (1Gb+),我想提取那些不包括 MX、MXnn、BR
我需要使用 DOS 命令 FINDSTR 来搜索我们所有与其他类型文件(如 PDF、exe、dll 等)混合的源代码文件。 我不需要搜索那些二进制文件。有没有办法排除二进制文件? 我的命令看起来像 f
我有一个程序正在使用 findstr ,当找到字符串时 errorlevel返回 0当找不到字符串时 errorlevel返回 1 .好吧,没关系,我可以处理。 问题出在哪里,我找不到任何关于每个 e
这很简单……为什么第一个命令有效而第二个命令无效? Findstr 在我看来最适合在“dos”之类的命令中使用,而不是在 powershell 中使用。 Get-AppXProvisionedPack
PowerShell 的 DOS FINDSTR 等价物是什么? ?我需要在一堆日志文件中搜索“错误”。 最佳答案 这是快速答案 Get-ChildItem -Recurse -Include *.l
我正在尝试使用netstat -abn或Select-String来获取findstr命令的完整输出,但是由于仅列出了搜索字符串,因此无法正常工作。我正在寻找与grep在Linux上相同的行为,如果您
我正在尝试执行命令 findstr /RC:"h25v06.*hdf\"" "index.html" >temp.txt 得到跟随输出 index.html: FINDSTR: Cannot ope
我是一名优秀的程序员,十分优秀!