![SEDコマンドを使用して複数のファイルの空白の単語を置き換えようとしています。 [閉じる]](https://linux33.com/image/53158/SED%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%A9%BA%E7%99%BD%E3%81%AE%E5%8D%98%E8%AA%9E%E3%82%92%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
SEDコマンドを使用して複数のファイルの空白の単語を置き換えたいと思います。
複数のディレクトリの多くのファイルに一重引用符を含む「Danny」という単語があり、それを「Danny Samuel」に変更したいと思います。
新しい単語にスペースがあるため、このコマンドは機能しません。
find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
答え1
一重引用符の中に一重引用符を含めることはできません。'
inは'Danny
引用符を閉じます。
find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
^^ !!!!! ^ !!!!!!!!!!!! ^^
quoted quoted quoted
unquoted unquoted
書き下ろす:
find . -type f -exec sed -i.php -e "s/'Danny'/'Danny Samuel'/g" {} +
(.php
バックアップファイルの拡張子としては、これは非常に予期しないことです。)