gab*_*be. 11 sed text-processing
所以,我在一个目录中有一堆文件,我需要在每个文件中插入一行文本。它们基本上具有以下格式:
<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 来做到这一点,可能匹配和替换那个标签。我现在要开始尝试这个,但如果有人有办法做到这一点,我很想听听。
小智 12
像这样的东西:
sed 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/'
Run Code Online (Sandbox Code Playgroud)
作品。如果您想在很多文件上重复此命令,您可以执行以下操作:
for i in *; do sed -i 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/' "$i"; done
Run Code Online (Sandbox Code Playgroud)
感谢@ChrisDown,可能会更好(但未经测试):
find . -type f -print0 | while IFS= read -r -d '' filename;\
do sed -i 's/<\/VirtualHost>/yourlinehere\n<\/VirtualHost>/' $filename;\
done
Run Code Online (Sandbox Code Playgroud)