2013-03-07 41 views
0

我正嘗試使用FINDSTR commanand和cmd.exe來生成包含特定字符串的輸入文件中所有行的文件。我下面的命令不會產生任何結果,而FIND命令(下文)顯示,有包含字符串182688行我找...命令提示符中的FINDSTR

find命令:

FIND /c "searchstring" c:\Users\karl\Desktop\Report.csv 

給出以下:

---------- C:\USERS\KARL\DESKTOP\REPORT.CSV: 182688 

FINDSTR命令:

findstr /i /c:"searchstring" c:\Users\karl\Desktop\Report.csv > results.out 

給了我一個叫做results.out的空白文件。

我錯過了什麼?

+1

究竟什麼是你的'searchstring'?我現在看到的最可能的罪魁禍首是你的搜索字符串的行爲不是你在'findstr'命令中打算的行爲;你打算作爲一個字符串被解釋爲具有意想不到的特殊意義的正則表達式符號。 – rojo 2013-03-07 19:01:05

+1

@rojo - 我同意,搜索字符串可能不會按照需要進行解釋。但它不能成爲正則表達式的問題,因爲'/ c'選項默認爲文字搜索,除非添加'/ r'選項。 – dbenham 2013-03-07 20:07:27

+0

@dbenham - 例如'findstr/i/c:「* abcd *」'會搜索文字(星號)abcd(星號),而不是包含'abcd'的字符串?這清除了一些長時間的混亂。直到現在,我只是避免在表達式中使用空格,所以我不必在'findstr'中使用'/ c'開關。呵呵。 – rojo 2013-03-07 20:14:24

回答

2

FINDSTR有許多無證的「功能」,可能會讓你失望。請參閱What are the undocumented features and limitations of the Windows FINDSTR command?

您還沒有告訴我們您的搜索字符串是什麼,所以我無法確定。但是,您的問題可能與一個或多個以下:

  • 特殊規則轉義"\文字搜索字符串中的命令行中搜索字符串使用時
  • 許多擴展ASCII字符沒有找到自己。
  • FINDSTR無法搜索unicode文件。我被告知FIND可以搜索unicode文件。
+1

我的字符串確實包含無法找到的字符。我結束了使用MS Access執行所需的查詢。許多感謝@dbenham – 2013-03-22 10:41:42

0

試試這個。在/ n給出一個行號:

findstr /i /n "\<searchstring\>" c:\Users\karl\Desktop\Report.csv