![正規表現と変数拡張が適用されないときにsedコマンドをネストされた部分に分割する方法は? [コピー]](https://linux33.com/image/13839/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A8%E5%A4%89%E6%95%B0%E6%8B%A1%E5%BC%B5%E3%81%8C%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D%E3%81%ABsed%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E3%83%8D%E3%82%B9%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E9%83%A8%E5%88%86%E3%81%AB%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
以前に決定した(既知の)特定のEメールアドレスをすべてPHPファイルの他のEメールアドレスに置き換えたいと思います。sed
これは私が知っている最も簡単な方法です。
動作します(メールが変更されました)。
sed -i 's/\$to = "[email protected]"/\$to = "example_1@example_1.com"/g' FILE
しかし、テキストに1つのライナーを使用することはしばしば間違いだと思います。特に、人々がテキストが「長すぎる」と思った場合、うまくいきませんでした。
sed -i \
' \
-e s/
-e \$to = "[email protected]"/
-e \$to = "example_1@example_1.com"/
-e g
' \
FILE
sed: -e expression #1, char 8: unterminated address regex
正規表現と変数拡張が適用されないときにsedコマンドをネストされた部分に分割する方法は?
(つまり、演算に正規表現と変数拡張/特殊引用規則がない場合)
答え1
以下を試してください。
sed -i \
's/'\
'\$to = "[email protected]"'\
'/'\
'\$to = "[email protected]"'\
'/g'\
FILE
前のスペースを参照してください。FILE