• ベストアンサー

viコマンドについて

viコマンドを使用してファイルを編集したいのですがわからない ことがありましたので質問させていただきます。 皆様のお力をお貸しいただけないでしょうか。 仕様しているテキストエディタはviviであり、 勉強の一貫としてvi機能でファイル編集を行っています。 【内容】 行頭に下記の単語を含む行をファイルより抜き出したいと思って います。 ホスト名 IPアドレス サブネットマスク そのファイルは約25000行ほどありそれぞれの単語は5行間隔 などではなくランダム行毎に配置されています。 また、行頭の単語には似たようなものも存在しています。 ホスト数 IPMAP のように。  いくつか試してみたのですができませんでした。 :v/^[ホスト名|IPアドレス|サブネットマスク]/d :v/(^ホスト名|^IPアドレス|^サブネットマスク)/d :%g/^[^ホ|I|ス]/d 他にもいろいろ試したのですができませんでした。 『単語A or 単語B』の正規表現がわかっていないのが原因だとは 思っているのですが。。。 わかりずらい表現も多いかと思いますがご協力お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pakuti
  • ベストアンサー率50% (317/631)
回答No.1

ファイルより抜き出すってのがいまいちわかりませんが viの中で完結する必要が無ければ。 egrep '(^ホスト名|^IPアドレス|^サブネットマスク)' file.txt でどうでしょう? 見当違いだったら、すみません。

king0512
質問者

補足

ご回答ありがとうございます。 抜き出すとは特定の単語を含まない行を削除することを 表現したかったのですが。。。すみません、うまい表現では なかったと思います。 他の方のアドバイスからも『grep』を使う方がよいとの 指摘はいただいておりました、今回はこちらの方法で 編集しようと思います。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「or」はものによって「|」だったり「\|」だったりします. グルーピングのかっこも, 「\」が必要なときと不要なときがあります. まあ, 「抜き出す」の意味にもよりますが, #1 もいわれるように vi ではなく grep を使う方が素直だと思います.

関連するQ&A

  • viコマンドについて

    UNIX初心者からの質問です。 viコマンドでファイルを作成していたのですが、ひとつの行に単語が2つあって、単語と単語の間に空マスができてました。 その空マスを消すために、xキーでひとつひとつ消していったら、先輩に効率悪すぎとしばかれてしまいました。。。 コマンドモードで一度に空マスを消すことってできるのでしょうか?? こんなファイルです。 ↓ LPL_ASASASA LPL_sasasasa LPL_dadadad LPL_WQWQWQQW 先輩に聞いても教えてもらえなく、困っております。 どなたかわかりましたら、教えてもらえないでしょうか???

  • 行削除のviコマンド2

    viコマンドでご教授いただきたい事があります 「"hoge"が含まれる行を全て削除する」 を実現する ”: ” から始まるコマンド文はありませんでしょうか? 以前、 「先頭が"hoge"から始まる行以外を全て削除する」を :v/^hoge/d だと教えて頂いて大変助かっております。 今回もよろしくお願いいたします。

  • Solaris2.xでネットワーク関連の設定を変更するには?

    Solaris2.xで、 「ホスト名」「IPアドレス」「サブネットマスク」などの マシン情報を変更するには、どのようにすればよいでしょうか? ちなみに、admintoolでホストを選んでみたのですが、 hostsの内容の一覧は表示されており、それの変更はできる事は知っていますが、 そのマシンの「ホスト名」「IPアドレス」「サブネットマスク」情報を 変更させる方法が分からないのです。

  • 誰か助けてください!!!

    誰か助けてください!!! IPアドレス上のホストのアドレスが208.15.208.85で、サブネットマスクが255.255.255.240とする。このホストの配置されているサブネットのネットワークアドレスと、このサブネットのブロードキャストアドレスを次の中なら選びなさい。 a.サブネット:208.15.208.80、ブロードキャス:208.15.208.95 b.サブネット:208.15.208.16、ブロードキャス:208.15.208.94 c.サブネット:208.15.208.62、ブロードキャス:208.15.208.255 d.サブネット:208.15.208.80、ブロードキャスト:208.15.208.255 e.サブネット:208.15.208.32、ブロードキャスト:208.15.208.255 よろしくお願いします。 

  • IPアドレス

    IPアドレス IPアドレス上のホストのアドレスが208.15.208.85で、サブネットマスクが255.255.255.240とする。このホストの配置されているサブネットのネットワークアドレスと、このサブネットのブロードキャストアドレスを次の中なら選びなさい。 a.サブネット:208.15.208.80、ブロードキャス:208.15.208.95 b.サブネット:208.15.208.16、ブロードキャス:208.15.208.94 c.サブネット:208.15.208.62、ブロードキャス:208.15.208.255 d.サブネット:208.15.208.80、ブロードキャスト:208.15.208.255 e.サブネット:208.15.208.32、ブロードキャスト:208.15.208.255 f.十分な情報を与えられていないので解答できない。 g.サブネット:208.15.208.64、ブロードキャスト:208.15.208.96 です。宜しくお願い致します。

  • サブネットマスクが必要な理由

    IPアドレスをネットワークアドレス部とホストアドレス部にわけるためにサブネットマスクというものがありますが、 具体的にどこで使用されているのでしょうか? と言いますのは、通信をするときに相手のサブネットマスクは入力しませんし、 IPアドレスだけ入力すれば相手に接続できますよね? 同じセグメントなら自分の持つサブネットで解決できるかもしれませんが、 サブネットマスクが違うネットワーク(別セグメント)にあるホストと通信ができるのはなぜなんでしょうか?

  • サブネットマスク

    サブネットマスクについて教えてください。 IPアドレス;200.1.1.0 サブネットマスク;255.255.255.240 この場合16のネットワークがつくることができ、 1ネットワークごとに14のホストを持つということでよろしいでしょうか?

  • タスケテクダサイ!!!

    タスケテクダサイ!!! IPアドレス上のホストのアドレスが208.15.208.85で、サブネットマスクが255.255.255.240とする。このホストの配置されているサブネットのネットワークアドレスと、このサブネットのブロードキャストアドレスを次の中なら選びなさい。 よろしくお願いします。

  • IPアドレス 計算

    IP計算について解けない問題があるのですが、 クラスCのIPアドレスでサブネットマスクがデフォルトの場合利用可能なホストはいくつですか? 選択254  255 256 510 511 512 サブネットマスクがデフォルトの場合192.168.32.0というクラスCアドレスのブロードキャストアドレスはどれですか? 192.168.0.0 192.168.0.255 192.168.32.0 192.168.32.254 192.168.32.255 ネットワークアドレスが192.168.32.0のときサブネットワーク1つにつき254台のホストを利用可能にするにはどのサブネットマスクを当てますか? 255.255.0.0 255.255.255.0 255.255.254.0 255.255.248.0 この3つの問題が解けないのですがIPアドレス計算のできる方どうかお願いします。

  • 同じサブネットに属するIPアドレス

    IPアドレスが192.168.1.34のPCと同じサブネットに属するIPアドレスはどこまでかを求めよ.ただしサブネットマスクは255.255.255.240が設定されているものとする. という問題が出たのですが,答えを聞いてもいまいちわかりませんでした. サブネットマスクの240の部分→11110000,よってホスト部が0000で14台. だから192.168.1.34の34+14で192.168.1.48までが同じサブネット,という考えでいいのでしょうか. 説明ではネットワークアドレスを求めていたようなのですが,求める必要があるのかがわかりません.