viエディタに関する質問です。

 
テキストファイルをviで開き、
「任意の文字列が含まれている行のみを一括して削除」
をしたいと考えています。
 
実現する方法があればご教示頂ければ幸いです。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/11/02 16:51:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hato0013 No.1

回答回数20ベストアンサー獲得回数6

id:SOBA

出来ました!ありがとうございました!

2009/11/02 16:51:19

その他の回答1件)

id:hato0013 No.1

回答回数20ベストアンサー獲得回数6ここでベストアンサー

id:SOBA

出来ました!ありがとうございました!

2009/11/02 16:51:19
id:y-kawaz No.2

回答回数1422ベストアンサー獲得回数226

ポイント35pt

↓こんな感じで置換してやればいいんじゃないでしょうか。

:%s/.*sakujo.*\n//

もしくは Linux 環境であれば外部コマンドを使って以下のようにすることもできるかと思います。

:%!grep -v 'sakujo'
id:SOBA

こちらの方法でも出来ました!ありがとうございました!

2009/11/02 16:51:29
  • id:t-wata
    便利でよく使うVimのコマンドで、簡単で、かつ、普通に使うだけで達人のように見えるものがいくつかあります。
    覚えとくと便利ですよ。

    1.空行の削除
     :g/^$/d
    2.特定文字列を含む行の削除
     :g/pattern/d
    3.特定文字列を含まない行の削除
     :v/pattern/d
    4.キャリッジリターン(行末につく「^M」)の削除
     :%g/^M//g
     (^Mは、Ctrl+V Ctrl+Mで入力)
    5.改行コード変更
     :set ff=dos (Windowsの改行コードCRLFに変更)
     :set ff=unix (Unixの改行コードにLF変更)
    6.タブをスペースで置換、タブを削除
     :%s/^I/ /g
     :%s/^I//g
    (^Iは、Ctrl+V Ctrl+Iで入力)
    7.ファイルタイプの変更(コピペで貼り付けたソースコードを適切なファイルタイプで色づけする)
     :set ft=xml
     :set ft=java
     など
    8.インデント(上の7でファイルタイプを指定した状態で)
     1GVG=
  • id:SOBA
    うおー
    ご丁寧にありがとうございます。
    早速メモに残しておきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません