Jump to navigation
仕事中に「DOS の FINDSTR コマンドで 3<TAB><TAB> で始まる行を検索するにはどうすればいいの?」なんて質問を受けまして。
無駄にてこずったのでメモ。
はじめは「"^3\t\t" とかでいけませんかー?」と返答したんですが、FINDSTR の正規表現では \t とか \n は使えないらしく。
「じゃあ直接タブ入力してみては?」と答えたんですが、どうもうまくいかないぽいです。
ちょっと本腰入れて調べてみると、FINDSTR では空白文字は OR の意味で使われるらしく、"a b" のようにすると a or b を検索するっぽいですね。
で、対応するには /C オプションで明示的に検索文字列を指定してやる、と。
×FINDSTR "a b"
○FINDSTR /C:"a b"
で、さらに面倒なことに、/C オプションを指定すると、デフォルトで有効になっている正規表現が無効になってしまうようで。
FINDSTR /R /C:"^3<TAB><TAB>"
と /R オプションで明示的に正規表現を有効にしてやるか、
FINDSTR /B /C:"3<TAB><TAB>"
と、/B オプションで行頭を表すかすればいいらしいです。
やっぱこのへんの造りは UNIX 系のほうが強いな、としみじみ思いました。
sed とか見習って欲しい。
TrackBack
このエントリにトラックバックはありません
現在トラックバックは受け付けていません。
Comments
Add Comments
現在コメントは受け付けていません。
お手数ですが、
こちら のコメント欄にでも記載していただければと思います。