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