Bash unix脚本中的回车

Bash unix脚本中的回车,bash,unix,Bash,Unix,我有一个这样的文件 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> </VirtualHo

我有一个这样的文件

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
</VirtualHost>
我有一个奇怪的角色:

<VirtualHost _default_:443>
        ServerAdmin info@domain.com ^MServerName domain.com ^MServerAlias www.domain.com

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
</VirtualHost>

服务器管理员info@domain.com^MServerName domain.com^MServerAlias www.domain.com
DocumentRoot/var/www/
选项如下符号链接
不允许超限
我错过了什么


非常感谢,

Unix文本文件行结束字符是
\n
,ASCII 0x0A(新行/换行符)<代码>\r0xOD是回车符


将sed表达式中的
\r
替换为
\n
,您就可以开始了。

Unix文本文件行结束字符是
\n
,ASCII 0x0A(新行/换行符)<代码>\r0xOD是回车符


将sed表达式中的
\r
替换为
\n
,您就可以开始了。

单程使用
sed
(GNU版本):

script.sed的内容

## Match line with string 'serveradmin' ignoring case.
/serveradmin/I {
    ## Append text after this line.
    a\  
## Literal text to append until a line not ending with '\'
\tServerName domain.com\
\tServerAlias www.domain.com
}
运行脚本:

sed -f script.sed infile
结果:

<VirtualHost *:80>                                                                                                                                                                                                                           
        ServerAdmin webmaster@localhost                                                                                                                                                                                                      
        ServerName domain.com                                                                                                                                                                                                                
        ServerAlias www.domain.com                                                                                                                                                                                                           

        DocumentRoot /var/www/                                                                                                                                                                                                               
        <Directory />                                                                                                                                                                                                                        
                Options FollowSymLinks                                                                                                                                                                                                       
                AllowOverride None                                                                                                                                                                                                           
        </Directory>                                                                                                                                                                                                                         
</VirtualHost>

服务器管理员webmaster@localhost                                                                                                                                                                                                      
ServerName域名.com
ServerAlias www.domain.com
DocumentRoot/var/www/
选项如下符号链接
不允许超限

带sed的单向(GNU版本):

script.sed的内容

## Match line with string 'serveradmin' ignoring case.
/serveradmin/I {
    ## Append text after this line.
    a\  
## Literal text to append until a line not ending with '\'
\tServerName domain.com\
\tServerAlias www.domain.com
}
运行脚本:

sed -f script.sed infile
结果:

<VirtualHost *:80>                                                                                                                                                                                                                           
        ServerAdmin webmaster@localhost                                                                                                                                                                                                      
        ServerName domain.com                                                                                                                                                                                                                
        ServerAlias www.domain.com                                                                                                                                                                                                           

        DocumentRoot /var/www/                                                                                                                                                                                                               
        <Directory />                                                                                                                                                                                                                        
                Options FollowSymLinks                                                                                                                                                                                                       
                AllowOverride None                                                                                                                                                                                                           
        </Directory>                                                                                                                                                                                                                         
</VirtualHost>

服务器管理员webmaster@localhost                                                                                                                                                                                                      
ServerName域名.com
ServerAlias www.domain.com
DocumentRoot/var/www/
选项如下符号链接
不允许超限

@Mat:将其作为答案发布。@Mat:将其作为答案发布。