我想返回文件中始終具有相同前綴的行號,但其餘部分可能會有所不同。
是否可以僅使用現有的 Windows 元件和命令列操作公用程式來搜尋檔案以傳回符合部分的行號。
我正在搜尋的行的一個範例是:
</TR></TABLE><TABLE cellspacing...
更多可能有所不同的程式碼
文件中的行是生成器的輸出,因此我不確定每次生成文件時發生了什麼變化或可能會發生變化。
答案1
FINDSTR 用於搜尋文件中的文本,列印出與搜尋相符的每一行。此/N
選項導致行號作為 被加到每個符合的輸出行前面LineNumber:FullTextOfMatchingLine
。
由於您的搜尋字串包含空格,因此您必須使用該/C:"search string"
選項,否則搜尋字串將被解釋為由空格分隔的多個搜尋字詞。
您希望搜尋僅符合行的開頭,因此您需要該/B
選項。或者,您可以新增/R
將搜尋視為正規表示式的選項,然後^
在搜尋字串的開頭使用行首錨點。
findstr /b /c:"</TR></TABLE><TABLE cellspacing" "yourFile.htm"
您僅要求行號,而不要求符合行的文字。您可以使用 FOR /F 來擷取所需的行號。
for /f "delims=:" %A in ('findstr /b /c:"</TR></TABLE><TABLE cellspacing" "yourFile.htm"') do @echo %A
如果將命令放入批次檔中,則必須將百分比加倍:
@echo off
for /f "delims=:" %%A in ('findstr /b /c:"</TR></TABLE><TABLE cellspacing" "yourFile.htm"') do echo %%A
答案2
用於在文件中findstr /N strings filename
搜尋 的實例。strings
filename
注意:/N
“在每個符合的行之前列印行號”
有關更多使用信息,請運行findstr /?