したがって、ディレクトリに複数のファイルがあり、各ファイルにテキスト行を挿入する必要があります。デフォルトでは、次の形式があります。
<VirtualHost *:80>
ServerAdmin gabe@localhost
DocumentRoot /var/www/test1
ServerName test1.local
ServerAlias test1
<Directory "/var/www/test1">
Options All
AllowOverride All
</Directory>
</VirtualHost>
最後の前に行を挿入したいです。
</仮想ホスト>ブランド。私の最初の仮定は、sedを使用してタグを一致させ、交換できる必要があるということでした。これから試してみる予定ですが、誰かがこれを行うことができる既存の方法がある場合は、これについて聞きたいと思います。
ベストアンサー1
このような:
sed 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/'
働く複数のファイルに対してこのコマンドを繰り返すには、次のようにします。
for i in *; do sed -i 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/' "$i"; done
@ChrisDown ありがとうございます。おそらくより良いでしょう(しかしテストされていません)。
find . -type f -print0 | while IFS= read -r -d '' filename;\
do sed -i 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/' $filename;\
done