2016-07-23 41 views
0

日安替換文本,如何找到並使用使用〜作爲分隔符使用sed

在bash shell腳本我放在一起,我想找到這樣的文字:在/ usr /本地/freeswitch/log/freeswitch.log,取而代之的是:在這個文件中/var/log/freeswitch/freeswitch.log/etc/fail2ban/jail.local

這是我曾嘗試到目前爲止,這兩者都會導致錯誤:sed:-e表達式#1,字符75:未終止的's'c ommand

嘗試#1

sed -i 's~usr/local/freeswitch/log/freeswitch.log~var/log/freeswitch/freeswitch.log' /etc/fail2ban/jail.local 

嘗試#2

sed -i 's~usr/local/freeswitch/log/freeswitch.log/var/log/freeswitch/freeswitch.log' /etc/fail2ban/jail.local 

我的研究表明,因爲我搜索的文本包括 「/」 字符,我應該使用不同的分隔符「〜」來分隔查找和替換字符串。但看起來我做錯了什麼,任何援助將不勝感激,謝謝。

回答

3

sed替換命令的結構是s/PATTERN/REPLACEMENT/(注意命令末尾的分隔符)。

你是對的,你可以改變分隔符到一個不同的字符,所以如果你要使用~你需要把其中的一個放在命令的末尾。

+0

aaaah,謝謝,謝謝,謝謝!不能相信我錯過了這一點 –