※ ChatGPTを利用し、要約された質問です(原文:sedコマンドの置換パターン条件について)
sedコマンドの置換パターン条件について
このQ&Aのポイント
sedコマンドを使用して、シェルスクリプトでユーザを追加&削除しています。
ユーザの追加処理はsedコマンドを使用して実現できました。
ユーザの削除処理でAND条件の使用について悩んでいます。
シェルスクリプトについて質問です。
/etc/ssh/sshd_configのAllowUsers行にユーザを追加&削除、sshdをリスタートするスクリプトを作っています。
ユーザ追加の処理はsedコマンドで実現できました。
sed -i -e "s/^AllowUsers/AllowUsers $USERNAME/" $CONF_FILE
そして、悩んでいるのがユーザ削除時の処理です。
"AllowUsersで始まる行の中で" 且つ "変数$USERNAME" に一致する部分を削除するという処理です。sedは複数条件を指定することもできますが、以下記述の場合、2つの条件が独立して処理されてしまいます。
sed -e "s/^AllowUsers/AllowUsers/" -e "s/ $USERNAME//" $CONF_FILE
($USERNAMEに一致する部分はAllowUsersで始まらない行でも置換される)
sedにAND条件のような使い方は可能でしょうか。
環境はCentOS 5.3、シェルはbashを使っています。
よろしくお願いいたします。
お礼
ご回答ありがとうございます。 sedの使い方を理解しておらず何となくでしか分かっていませんが、目的とする動作が実現できました。時間を割いて回答いただきありがとうございました。これからも勉強します。