• 締切済み

findstrでヒットした1行前の文字を拾いたいです。

findstrでヒットした1行前の文字を拾いたいです。 Windows文字検索コマンドのfindstrがあります。 > findstr "ヒットしたい文字" c:\hoge.txt で、hoge.txtの「ヒットしたい文字」を取り出せますが、 ヒットした1行前の文字を抜き出す方法はありますでしょうか? unixのgrepだと"-1"のオプションで1行前の文字摘出ができました。 findstrのオプションでは無さそうなので代替案がありましたら お願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

マニュアルを見ても、そこまで便利なコマンドではないようです。 /N で行番号が表示されるので、これを別なプログラムで取り出して -1した行を表示...という方法はあるでしょうが。 そこまでやるなら、 GNU grep のWindows移植版を使うとか、 Perl,Python,Rubyといった言語でスクリプトを書いた方が速そうです。 perl -ne 'if (/検索する文字列/){ print $prev ;} ; $prev = $_ ;' なんたら.txt とか

関連するQ&A