ここから本文です

sedコマンドに詳しい方、教えて下さい linuxのhostsファイルを編集するのにsed...

k02********さん

2018/9/2214:32:37

sedコマンドに詳しい方、教えて下さい

linuxのhostsファイルを編集するのにsedコマンドでファイルを開かず直接編集したいのですが、うまくいきません。

完全一致した行があった場合に、行ごと置換するという内容にしたいのですが、
IPアドレスとホスト名の間にタブが含まれている為、うまく動作しません

変更前のIPアドレス<タブ>ホスト名

↓ 上記に一致した行があったら、下記に置換したい

変更後のIPアドレス<タブ>ホスト名

上記のように変更するには、どうしたらよろしいでしょうか?

ちなみに下記で試しましたが、駄目でした。

sed -i -e 's/変更前のIPアドレス<タブ>ホスト名/変更後のIPアドレス<タブ>ホスト名/' /etc/hosts

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
16
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nan********さん

2018/9/2216:24:21

変換前の . はエスケープしないとダメです。
タブは、\t です。
例えば、192.168.10.11 raid1x を 192.168.10.12 raid2
にするなら、

sed -i -e 's/192\.168\.10\.11\traid1x/192.168.10.12\traid2/' /etc/hosts

です。

  • nan********さん

    2018/9/2216:29:03

    ^ $ を付けた方が正確かな?

    sed -i -e 's/^192\.168\.10\.11\traid1x$/192.168.10.12\traid2/' /etc/hosts

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/9/22 18:56:30

回答ありがとうございます!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる