行内の文字を見つけますか?

行内の文字を見つけますか?

find または findstr を使用してファイル内の特定の文字を検索しようとしています。たとえば、ファイルの内容は次のようになります。

"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;アブ_test1"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;アブ.test2"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;(abc)test3"
"/test/abctest/abci.txt = c:\abctest\tst\work\workt.txt;アブ_テスト4"

... などなど...
ファイル内の最後の「abc」(太字部分) を検索したいのですが、
このファイルは非常に大きいため、文字の検索に「for」ループを使用したくありません。
何か解決策を提案していただけませんか?

答え1

Cygwin のような Unix ツールのパッケージをインストールする場合は、tac コマンド (「cat」の反対) を使用できます。このコマンドは、ファイルを逆順に読み取り/表示します。次に、これを findstr (または grep) にパイプして、ファイルから最後に一致する文字列を取得します。tail の一部のバージョンは -r スイッチをサポートしており、これもファイル内の行の順序を逆にします。

不明な点があればコメントを残していただければ詳しく説明します。

更新: 次のいずれかをインストールすると、Windows で Unix ツールを使用できるようになります。シグウィンunxutilsコアユーティリティこれらのリンクに従っていずれかをインストールすれば、必要なものが手に入ります。参考までに、CygWin が最も人気があるようで、私もこれを使用しています。

関連情報