人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

vimで正規表現で

1行目 abc def ghi 3000
2行目 jkl mno pqr 40000
3行目 stu vwx yzA 1000
4行目 abc def ghi 5000

1.「def」のある行だけ残す方法
2.数値の部分が5000以上の行だけ残す方法
をそれぞれ知りたいのですが。

●質問者: dedara
●カテゴリ:コンピュータ インターネット
✍キーワード:ABC def MNO vim 正規表現
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● paraizo
●40ポイント ベストアンサー

1.:v/def/d

2.:g/[?d]+[5-9]000$/d

◎質問者からの返答

なぜか2.の方がパターンが見つからないと出てしまいます。

あと2.の方は数値のあとにもスペースを挟んで文字が続く想定でお願いしたかったのです…


2 ● komamitsu
●5ポイント

久しぶりにvimの正規表現を書いてみた

1.

:%!perl -ne 'next unless /def/; print'

2.

:%!perl -ne 'next if /(\d+)$/ and $1 < 5000; print'

って邪道か…

◎質問者からの返答

私の環境だとperlを認識しませんでした


3 ● romeo_t
●15ポイント

2つめの方ですが、「:v/[\d]*[05-9]000/d」では如何でしょうか。

ただし数値が「0000」だけでもマッチしますのでご注意を。

◎質問者からの返答

できました。ありがとうございます


4 ● guyon
●40ポイント

こんな感じでどうでしょうか?

:g!/def/d
:g!/\([5-9]\d\{3,3}\)\|\([1-9]\d\{4,}\)/d
◎質問者からの返答

できました。あと「\|\」このような書き方を知らなかったので

ひじょうに参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ