2016-01-20 186 views
0

我有一個網絡腳本,我試圖在包含字符串默認路由之後插入一行。我用使用sed插入包含單引號的字符串

sed -i '/default route/a option device '/dev/modem'' /etc/network 

但它不包括單引號,即返回

option device /dev/modem 

,我需要它來閱讀

option device 'dev/modem' 
+3

使用:'sed -i「/默認路由/選項設備'/ dev/modem'」文件' – sat

+0

您可能想要閱讀https://www.gnu.org/software/bash/manual/ bashref.html#引用 –

回答

2

的主要問題是,你重用單引號。最簡單的方法是在雙引號包住命令:

sed -i.bak "/default route/a\ 
option device '/dev/modem'" /etc/network 

我還做了幾個其他的變化,使命令在不同版本的sed的更加兼容:

  1. 我已將字符串移動到新行上並使用a\
  2. 我已經爲-i開關添加了後綴(-i不是標準的,但至少帶有後綴更多標準)。
+0

非常感謝你 – Lurch

相關問題