2017-11-18 173 views
4

这是我想要更改的文件。我想在servers {下添加一个条目。将代码附加到代码块时终止了's'命令

eap-radius { 

    # Section to specify multiple RADIUS servers. 
    servers { 

    } 
} 

这是我曾尝试

sed -i '/servers {/a\ 
server-a { 
      accounting = yes 
      secret = 123456 
      address = 127.0.0.1 
      auth_port = 1812 
      acct_port = 1813 
} 
' /etc/strongswan.d/charon/eap-radius.conf 

的sed:-e表达式#1,焦炭81:未结束的'S'命令

+0

建议:保存文本文件中的并使用'r'命令..它将稳健无论你有什么字符..而'a'命令将解释反斜杠序列和其他东西.. – Sundeep

回答

0

我想你需要逃跑换行:

sed '/servers {/a\ 
     server-a {\ 
      accounting = yes\ 
      secret = 123456\ 
      address = 127.0.0.1\ 
      auth_port = 1812\ 
      acct_port = 1813\ 
     } 
' ./test.txt 

结果是(我也是标签有点server-a块):

eap-radius { 

    # Section to specify multiple RADIUS servers. 
    servers { 
     server-a { 
      accounting = yes 
      secret = 123456 
      address = 127.0.0.1 
      auth_port = 1812 
      acct_port = 1813 
     } 

    } 
} 

测试在Ubuntu 14.04.5 LTS,GNU bash的版本4.3.11(1)-release