ms-dos コマンド findstr を使用して文字列を検索し、ファイルから削除しようとしています。
現時点では、明示的な文字列を見つけることができますが、正規表現に本当に苦労しています。ファイルは次のようになります。
PLs - TULIP Report
Output_Format, PLS - TULIP REPORT
NUMLINES, 110907
VARIABLE_TYPES,T1,T8,I,T9,T2,N,N,N
[[data below]]
このファイルは一部のシステムからエクスポートされたものであり、そのヘッダーが含まれているため、SQL Loader を使用して Oracle データベースに取り込む前にクリーンアップしたいと考えています。
ファイルは 1 つだけではなく、すべて同じタイプのヘッダーを持ちますが、すべてのファイルでわずかに異なります。ハードコードされた値を使用して最初の 2 行を最初に削除しても問題ありませんが、次のようになります。
findstr /v "PLs - TULIP Report" "c:\myfiles\file1.PRO" > "c:\myfiles\file1.csv"</code><br>
findstr /v "Output_Format, PLS - TULIP REPORT" "c:\myfiles\file1.csv" > "c:\myfiles\file2.csv"
(2つのステップでそれを行う方法に注意してください-これを1つのステップで実現するための提案があれば、大歓迎です)
3行目は私にとっては複雑ではありません.常にその形式になります:
NUMLINES, 110907
ただし、最後の番号はファイルごとに異なります。では、正規表現を使用してこの行全体を見つけるにはどうすればよいでしょうか? 私が試してみました:
findstr /v /b /r "\D+ \s+ \d+"
しかし運がない。
参考までに、データは[[data below]]
次のようになります
*,"00000161",456823,"017896532","FU",23.95,3.34,20.61
etc .. 明らかに、データ領域を変更したくありません。
上記が理にかなっているといいのですが、
ありがとう