プロが教えるわが家の防犯対策術!

findstrでヒットした1行前の文字を拾いたいです。
Windows文字検索コマンドのfindstrがあります。

> findstr "ヒットしたい文字" c:\hoge.txt

で、hoge.txtの「ヒットしたい文字」を取り出せますが、
ヒットした1行前の文字を抜き出す方法はありますでしょうか?
unixのgrepだと"-1"のオプションで1行前の文字摘出ができました。

findstrのオプションでは無さそうなので代替案がありましたら
お願いします。

A 回答 (1件)

マニュアルを見ても、そこまで便利なコマンドではないようです。


/N で行番号が表示されるので、これを別なプログラムで取り出して -1した行を表示...という方法はあるでしょうが。

そこまでやるなら、 GNU grep のWindows移植版を使うとか、 Perl,Python,Rubyといった言語でスクリプトを書いた方が速そうです。

perl -ne 'if (/検索する文字列/){ print $prev ;} ; $prev = $_ ;' なんたら.txt
とか
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています