Windows命令行,我要搜索一個文件開頭的所有行:管道FINDSTR輸出
# 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)"
編輯內容:我要逃跑的正則表達式也點。不是問題,但值得一提。弗蘭克Bollack後
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*\.inc" all_pre.txt
編輯:
>findstr /r /c:"^# [0-9][0-9]* \"[a-zA-Z0-9_]*\.inc.*" all_pre.txt | more
不工作,但(我認爲)應該尋找相同的字符串作爲在此之前的任何字符任意次數。那必須包括"
,對吧?
注:返回文本可能有點不同nt,因爲我的操作系統不是英文的。 「無法打開」是我能做的最好的翻譯,我不確切知道真正的英文操作系統會是什麼。 – Gauthier 2010-04-29 12:09:06