我有一个非常大的文本文件,我只想从中提取包含特定邮政编码的记录,并在DOS中这样做。
我看到很多例子,但没有一个例子具体表达了我的需要。
任何帮助都将不胜感激。
答案 0 :(得分:0)
尝试使用FINDSTR。
您可以输入:
FINDSTR /?
如果您不打算向我们展示您的数据,请获取有关该命令的帮助。
以下是一些应该有用的示例:
首先,我向您展示我的文件,名为“file.txt”
E:\>TYPE file.txt
Line 1,MA01824
Line 2,NY10017
Tricky line,SomethingNY10017Something
现在我搜索一个简单的ZIP,如“MA01824”,它可以正常工作
E:\>FINDSTR "MA01824" file.txt
Line 1,MA01824
现在我搜索一次出现两次的ZIP,一次正确,一次嵌入另一个字符串
E:\>FINDSTR "NY10017" file.txt
Line 2,NY10017
Tricky line,SomethingNY10017Something
哎呀,失败了。添加一个正则表达式,意思是“只在单词的开头找到”
E:\>FINDSTR /r "\<NY10017" file.txt
Line 2,NY10017
如果用户在文件中使用大写ZIP时查找小写ZIP怎么样 - 没问题,只需使用“/ i”使搜索不区分大小写
E:\>FINDSTR /i "ma01824" file.txt
Line 1,MA01824
如果要将上述任何命令的输出保存到新文件中,而不是在屏幕上看到它,只需在命令末尾添加大于(&gt;)和文件名,如下所示:
FINDSTR "MA01824" > MassZIPcode.txt
小心不要通过为输出文件指定相同的名称来覆盖输入文件!!!
答案 1 :(得分:0)
C:\>FIND /?
Searches for a text string in a file or files.
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V Displays all lines NOT containing the specified string.
/C Displays only the count of lines containing the string.
/N Displays line numbers with the displayed lines.
/I Ignores the case of characters when searching for the string.
/OFF[LINE] Do not skip files with offline attribute set.
"string" Specifies the text string to find.
[drive:][path]filename
Specifies a file or files to search.
所以它会像FIND "010010" mydata.txt