批处理文件搜索文件夹中的所有.csv文件以获取字符串

时间:2013-11-05 11:45:06

标签: batch-file

我在文件夹中有很多.csv文件(来自Oracle每日数据库提取),我需要在文件中搜索字符串的实例:

`错误:

ORA-xxxxxx`

并从每个文件返回整行并将其复制到输出.txt文件。

我尝试搜索字符串ERROR:,如果找到则搜索字符串ORA-,但问题是文件可能包含包含字符串的行但这些不代表Oracle错误(即JOHN MORA-***###***###Mr xxx your line code has an ERROR: ...

提前致谢。

2 个答案:

答案 0 :(得分:0)

@echo off
    setlocal enableextensions

    break > output.log

    for %%f in (*.csv) do findstr /r /c:"^ERROR:" /c:"^ORA-[0-9]*" "%%f" >> output.log

对于UnxUtils

grep -Eh "^(ERROR|ORA-[0-9]*)" *.csv > output.log

答案 1 :(得分:0)

findstr /l "Error:" *.csv|findstr /r "ORA-[0-9][0-9][0-9][0-9][0-9][0-9]>output.txt

以上并不关心两个搜索字词的显示顺序。您需要指定规则。

文件中是否有64K行,你是32位吗?看看edlin是否可以提供帮助。如果您有Win32,您可以尝试编写edlin脚本。它有搜索和替换。

Edlin.script

12
Write new text on line 12
13
Write newtext on line 13
e

命令行

edlin“c:\ something \ somefile.txt< c:\ edlin.script

Edlin使用短文件名。