sed と bash を使用して、ファイル内のテキスト行を置き換えようとしています。これが私のコードです。私の構文がずれているだけかもしれません。
sed -e 's/DocumentRoot /var/www/html/s///usr/share/rt3/html/' /etc/httpd/conf/httpd.conf
sed と bash を使用して、ファイル内のテキスト行を置き換えようとしています。これが私のコードです。私の構文がずれているだけかもしれません。
sed -e 's/DocumentRoot /var/www/html/s///usr/share/rt3/html/' /etc/httpd/conf/httpd.conf
sed とファイル パスを使用する場合は、"/" 区切り文字を避ける方が簡単です。そうしないと、毎回エスケープすることになります。この「ピケットフェンス」形式は、読むのがひどいものです。
「DocumentRoot /var/www/html」を「DocumentRoot /usr/share/rt3/html/」に置き換えようとしていると仮定して、これを試してください。
sed 's_DocumentRoot /var/www/html_DocumentRoot /usr/share/rt3/html/_' /etc/httpd/conf/httpd.conf
例:
~> echo "DocumentRoot /var/www/html" | sed 's_DocumentRoot /var/www/html_DocumentRoot /usr/share/rt3/html/_'
DocumentRoot /usr/share/rt3/html/
~>
編集:あなたのコメントから、1)ファイルを開き、2)文字列を置き換え、3)変更を元のファイルに保存したいと考えています。この場合、sed の-i
フラグ (インプレース編集) を使用できます。これを試して:
sed -i 's_DocumentRoot /var/www/html_DocumentRoot /usr/share/rt3/html/_' /etc/httpd/conf/httpd.conf
例:
~> echo "DocumentRoot /var/www/html" > file
~> cat file
DocumentRoot /var/www/html
~> sed -i 's_DocumentRoot /var/www/html_DocumentRoot /usr/share/rt3/html/_' file
~> cat file
DocumentRoot /usr/share/rt3/html/