我在一个文件夹中有很多 .csv 文件(来自 Oracle 每日数据库提取),我需要在文件中搜索字符串的实例:
`错误:
ORA-xxxxxx`
并从每个文件中返回整行并将其复制到输出 .txt 文件中。
我尝试搜索字符串ERROR:,如果找到则搜索字符串ORA-,但问题是文件可以包含包含字符串的行,但这些行不代表 Oracle 错误(即。JOHN MORA-***###***###或Mr xxx your line code has an ERROR: ...)
提前致谢。
我在一个文件夹中有很多 .csv 文件(来自 Oracle 每日数据库提取),我需要在文件中搜索字符串的实例:
`错误:
ORA-xxxxxx`
并从每个文件中返回整行并将其复制到输出 .txt 文件中。
我尝试搜索字符串ERROR:,如果找到则搜索字符串ORA-,但问题是文件可以包含包含字符串的行,但这些行不代表 Oracle 错误(即。JOHN MORA-***###***###或Mr xxx your line code has an ERROR: ...)
提前致谢。
@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
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 使用短文件名。