0

フォルダー内に多数の .csv ファイル (Oracle の毎日の DB 抽出から取得) があり、文字列のインスタンスのファイルを検索する必要があります。

`エラー:

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

上記では、2 つの検索語がどの順序で表示されるかは気にしません。ルールを指定する必要があります。

ファイル内に 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 は短いファイル名を使用します。

于 2013-11-05T12:21:42.443 に答える