sed: 一致のためにスペースで始まる行を無視します。

sed: 一致のためにスペースで始まる行を無視します。

httpdのデフォルトのリスニングポートを9090に置き換えたいです。以下を使用して、httpd.confファイルの行を編集できます。

sed -i "/^Listen/c\Listen 9090" /etc/httpd/conf/httpd.conf

しかしライン

Listen 80

前にスペースがある場合があります。

この行と一致させるためにこの空白をどのように無視できますか?

答え1

次の手順を実行して、リストの前のスペースをキャプチャしないように一致パターンを変更します。

/^\s*Listen/

これにはすべての項目が含まれます。

Listen ..
    Listen ...

他の人。

答え2

正規表現がスペースと一致することを許可します。文字グループ[ \t](スペースまたはタブの一致)を使用するか、同等のPOSIX角括弧表現 [:blank:]

(角かっこ式は実際には二重角かっこペアを使用して作成されます。/^Listen//^[[:blank:]]*Listen/

関連情報