windows - piping findstr's output -
windows command line, want search file rows starting with:
# nnn "<file>.inc" where nnn number , <file> string.
i want use findstr, because cannot require users of script install ack.
here expression came with:
>findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9_]*.inc" all_pre.txt the file search all_pre.txt.
so far good. want pipe command, example more.
>findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9]*.inc" all_pre.txt | more the result of same output previous command, file name prefix every row (all_pre.txt).
then comes:
findstr: cannot open | findstr: cannot open more why doesn't pipe work?
snip of content of 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 called b)" edit: need escape dot in regex also. not issue, worth mention.
>findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9_]*\.inc" all_pre.txt edit after frank bollack:
>findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9_]*\.inc.*" all_pre.txt | more is not working, although (i think) should same string before character number of times. must include ", right?
you missing trailing \" in search pattern.
findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9]*.inc\"" all_pre.txt | more the above works me.
edit:
findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9]*\.inc.*\"" all_pre.txt | more this updated search string match these lines example:
# 1 "build_flags.inc" # 7 "build_flags.inc" # 11 "build_flags.inc" # 20 "build_flags.inc" # 45 "build_flags.inc(function called b)" edit:
to circumvent "bug" in findstr, can put search batch file this:
@findstr /r /c:"^# [0-9][0-9]* \"[a-za-z0-9_]*\.inc" %1 name myfindstr.bat , call that:
myfinsdtr all_pre.txt | more you can use pipe , redirection operators usual.
hope helps.
Comments
Post a Comment