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

Chinaunix

標題: sed 中&符號的處理 [打印本頁]

作者: 浩天之父    時間: 2012-03-24 17:11
標題: sed 中&符號的處理
test.xml
<item>
    <Instance>NULL</Instance>
    <COMMAND>NULL</COMMAND>
</item>
shell腳本(bash)
outputfile=result.out
command_value="/usr/lib/vmware-tools/bin32/vmware-user >/dev/null 2>&1 -blockFd -1"
cat test.xml|sed -e "s#<COMMAND>.*<#<COMMAND>${command_value}<#"  >>$outputfile

result.out:
<item>
    <Instance>NULL</Instance>
    <COMMAND>/usr/lib/vmware-tools/bin32/vmware-user >/dev/null 2><COMMAND>NULL<1 -blockFd -1</COMMAND>
</item>
command_value值中的&被替換成了<COMMAND>NULL<,請問有人知道是怎么回事么?該怎么解決呀,謝謝。
作者: hbmhalley    時間: 2012-03-24 17:21
& -> \&
作者: 浩天之父    時間: 2012-03-24 18:08
回復 2# hbmhalley


    在這個例子中是可以的,但是如果command_value的值不是事先賦予的,而是在程序中得到的該怎么辦呢?
   比如command_value=`echo $line|sed -r 's/(\S+ *){10}//',command_value得到的結(jié)果里面包含&符號,該如何進行轉(zhuǎn)義?
作者: hbmhalley    時間: 2012-03-24 18:47
本帖最后由 hbmhalley 于 2012-03-24 18:50 編輯

回復 3# 浩天之父


    `echo $line|sed -r 's/(\S+ *){10}//;s,&|\\|/,\\&,g'
作者: 浩天之父    時間: 2012-03-24 19:02
回復 4# hbmhalley
我試了下,貌似不行啊,請問 這個s,&|\\|/,\\&,g 看不懂

   
作者: hbmhalley    時間: 2012-03-24 19:12
回復 5# 浩天之父


    沒打算給你寫腳本. 就是說找個能處理的地方處理下就行了。比如你說的這個`echo .. | sed ..' 那就在 sed 里把每行再處理下不就行了
    s,&|\\|/,\\&,g : 逗號為了偷懶不解釋;& \ / 這三個在   s//這里/    是需要轉(zhuǎn)義的,于是就在‘它們’(&)前面加'\\'
作者: winway1988    時間: 2012-03-24 19:38
  1. [winway@winway test]$ echo "1 & 2" | sed 's/\([^\]\)&/\1\\\&/g'
  2. 1 \& 2
  3. [winway@winway test]$ echo "1 \& 2" | sed 's/\([^\]\)&/\1\\\&/g'
  4. 1 \& 2
復制代碼

作者: 浩天之父    時間: 2012-03-24 20:07
回復 7# winway1988

echo "1 & 2" | sed 's/\([^\]\)&/\1\\\&/g',sed中的\1是什么意思?


   
作者: winway1988    時間: 2012-03-24 20:22
回復 8# 浩天之父


   
\(..\)

保存匹配的字符,如s/\(love\)able/\1rs,loveable被替換成lovers。

作者: 浩天之父    時間: 2012-03-24 20:29
回復 9# winway1988

多謝多謝~


   
作者: Shell_HAT    時間: 2012-03-25 10:25
回復 8# 浩天之父


正則基礎(chǔ):后向引用
作者: registcn    時間: 2013-09-13 13:45
s/\(.*\)-\(.*\)-\(.*\)/sed eat the line \3/

回復 1# 浩天之父


   
作者: wzb56    時間: 2015-07-01 21:32
sed 's/[_&$]/\\&/g'




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