2009-04-17 21 views
2

私はライン-----任意の可変長文字列にすることができ表しは「内の文字列を抽出>と</パターン

>------ </ 

内で次のパターンを有するファイルから文字列を抽出しようとしています。ライン内のスタートパターンは>と終了パターン</ある。

VIMの正規表現を使用することの可能なコマンド・ライン・サーチのですか?もしそうならそれを印刷することができるか。

またはスクリプトを書くことがあるのだろうか?

私はVIM

答えて

1

は私だけ滞在し、すべてのデータが削除されます必要がありますまたは任意のテキストは、それがリダイレクトされる可能性がつかんで休むように強調表示されたテキストを必要とするこの

%:s/.*>\(.*\)<\/.*/\1/  
6

に新しいユーザ午前、次のvim検索してみてください。

/">\(.*\)<\/ 

そのパターンを持つ任意の行と一致する必要があります。また、最初のマーカーと最後のマーカーの間にあるテキストは、\1に格納されます。これは、vimで検索して置換する場合に使用できます。たとえば:

:%s/">\(.*\)<\//Log message: \1/ 

あなたが使用することができ、その文字列を検索するには、コマンドラインでのgrepを使用する場合:

$ egrep "\">.*<\/" foo.txt 

これはfoo.txtからのみ一致する行を出力します。あなたは新しいファイル試しにこれらを送信する場合:

$ egrep "\">.*<\/" foo.txt > new.txt 
+0

をお試しください他のファイルに? – kadeshpa

+0

おそらくもう1つの非貪欲なソリューションですか? –

+0

先頭の二重引用符はなぜですか? – rampion

関連する問題