亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 在線等,sed 命令替換雙引號內(nèi)部的值 [打印本頁]

作者: luoops    時間: 2013-07-29 17:05
標(biāo)題: 在線等,sed 命令替換雙引號內(nèi)部的值
本帖最后由 luoops 于 2013-07-29 17:52 編輯

新人,這個問題在網(wǎng)上墨跡了半個小時也沒有答案,無奈之下只能再次發(fā)帖向各位前輩求助了!

VALUE=/var/log

input:
KERNEL="" 或者KERNEL="xxx"
output:
KERNEL="/var/log"

我的命令:
sed -i "s/KERNEL=".*"/KERNEL=\"$(VALUE)\"/" ${DIR}/$(CONFIG_FILE)
但是提示:
sed: -e expression #1, char 41: unknown option to `s'

在線等,請各位幫忙解答下!
作者: whoislp    時間: 2013-07-29 17:13
回復(fù) 1# luoops
這樣行不行?
  1. sed -i 's/KERNEL=".*"/KERNEL=\"$(VALUE)\"/' ${DIR}/$(CONFIG_FILE)
復(fù)制代碼

作者: cao627    時間: 2013-07-29 17:15
  1. sed -r 's/KERNEL=".*"/KERNEL="'${VALUE}'"/' file
復(fù)制代碼

作者: WilliBhamlll    時間: 2013-07-29 17:18
  1. sed 's/"[^"]*//g;s/=/="'$VALUE'"/' file
復(fù)制代碼

作者: luoops    時間: 2013-07-29 17:53
回復(fù) 2# whoislp


    不行,忘了說了,VALUE是個路徑!
作者: luoops    時間: 2013-07-29 17:59
WilliBhamlll 發(fā)表于 2013-07-29 17:18


大哥,表示沒看懂你這條句子,能否詳解下,特別是"[^"]*是什么意思?
這個文件里面有很多KEY="VALUE"的句子,必須要匹配KEY吧!
謝謝!
作者: spiraspera    時間: 2013-07-29 18:02
本帖最后由 spiraspera 于 2013-07-29 18:04 編輯
  1. sed -i "s@KERNEL=".*"@KERNEL=\"$(VALUE)\"/"  ${DIR}/$(CONFIG_FILE)
復(fù)制代碼
這樣子?
作者: WilliBhamlll    時間: 2013-07-29 18:17
回復(fù) 6# luoops

哦,改一下,你看行不行?
  1. sed '/KERNEL=/s/"[^"]*//g;s/=/="'$VALUE'"/' file
復(fù)制代碼
[^"]*表示匹配除"之外的0或多個字符
作者: love_shift    時間: 2013-07-29 21:51
  1. sed -r 's/KERNEL=".*"/KERNEL="'${var}'"/' f | sed 's#~#/#g'
復(fù)制代碼
要不把VALUE=/var/log 先處理下 var=`echo "VALUE=/var/log" | sed 's#/#~#g'

作者: bikong0411    時間: 2013-07-30 08:55
echo 'KERNEL="xxx"' | sed -r 's@"(.*)"@"'$VALUE'"@'
作者: luoops    時間: 2013-07-30 09:28
回復(fù) 8# WilliBhamlll

我試過你這條命令了,在VALUE是字符串的情況下可以用滴,但是VALUE是路徑,需要在“/”之前加轉(zhuǎn)義符號。
比如VALUE=/var/log,實際需要表示成\/var\/log,請問有什么辦法可以在一條命令中處理?


   
作者: WilliBhamlll    時間: 2013-07-30 09:30
luoops 發(fā)表于 2013-07-30 09:28
回復(fù) 8# WilliBhamlll

我試過你這條命令了,在VALUE是字符串的情況下可以用滴,但是VALUE是路徑,需要在 ...



噢,那再改改
  1. sed '#KERNEL=#s#"[^"]*##g;s#=#="'$VALUE'"#' file
復(fù)制代碼

作者: luoops    時間: 2013-07-30 15:11
回復(fù) 12# WilliBhamlll


最開始我也試了這個辦法,沒有報錯,但是不生效!

   
作者: WilliBhamlll    時間: 2013-07-30 15:16
回復(fù) 13# luoops

我疏忽了,少了點東西。
  1. sed '\#KERNEL=#s#"[^"]*##g;s#=#="'$VALUE'"#' file
復(fù)制代碼

作者: evan_china    時間: 2013-07-30 16:41
替換以KERNEL開頭的行:
sed "/^KERNEL=/c KERNEL=\"$VALUE\"" ${DIR}/$(CONFIG_FILE)
作者: luoops    時間: 2013-08-03 17:51
回復(fù) 14# WilliBhamlll

3Q,有用,十分感謝!


   




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2