sed コマンドは行を置き換えます

sed コマンドは行を置き換えます

ファイルがありますsample.txt。このファイルの内容は

..some content...
  # bind-address = ":7086"
  # bind-address = ":8086"

ポート7086の行のコメントを外し、ポートも8888に置き換えて、最終修正ファイルが次のように見えるようにしたいと思います。

..some content...
   bind-address = ":8088"
  # bind-address = ":8086"

私は命令でそれをしたいsed。それでは、正確なコマンドは何ですか?

答え1

コメントで説明したように、文字列には常にが含まれているため、# bind-address = ":7086"これを置き換えるにはsed検索を使用し、文字列をハードコードしてオプションを置き換えます。

sed -i 's/# bind-address = ":7086"/bind-address = ":8088"/' file2

答え2

この試み、

sed -i 's/#\(.*\)7086/\18088/g' file_content

ここでは、前後の#すべての項目がグループ化され、行全体が(グループ1またはゾーン1)と希望のポート80887086に置き換えられます。\1

答え3

sed '1,/#/ s/#/ /' filename > temp1

最初のパターンの発生を空白に置き換えます。

その後、ポート番号を変更します。

sed 's/7086/8086/' temp1 > filename

関連情報