0

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

`错误:

ORA-xxxxxx`

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

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

提前致谢。

4

2 回答 2

1
@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
于 2013-11-05T12:16:02.857 回答
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 脚本。它具有搜索和替换功能。

埃德林脚本

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

命令行

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

Edlin 使用短文件名。

于 2013-11-05T12:21:42.443 回答