GNU SEDを使用して行にコメントを付け、新しい行を追加します。

GNU SEDを使用して行にコメントを付け、新しい行を追加します。

SSH設定を保護するために、RHEL 7で/etc/ssh/sshd_configファイルを編集するとします。

交換したいです。 Ciphers行を例としてそのままにしてコメントアウトしてみましょう。また、Red Hatがrpmを更新したりisoをインストールしたりするたびに文字列が壊れるのを防ぐために、文字列の最小部分をオフにしたいと思います。

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

する必要があります...

#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789 etc...

ファイル名がtestfileで内容がThis is my test fileのテストファイルで改行文字を検索または追加しようとしています。 「いいえ、新しい行ではありません」と追加しようとしましたが、厄介に失敗しました。

sed -i '/This is my test file./aNo it's not.' testfile

どうすればいいのか、さらに重要なのは、その背後に隠れた重要な概念は何ですか?

ベストアンサー1

以下のsedコマンドを試してみましたが、完璧に動作します。

注文する

sed -i '/^Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-c/s/.*/#&\nCiphers abc-123,def-456,ghi-789/g' filename

出力

#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789

おすすめ記事