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

Chinaunix

標(biāo)題: 求助!取特定 xml 標(biāo)簽中的屬性值 [打印本頁]

作者: raps    時(shí)間: 2015-06-04 21:17
標(biāo)題: 求助!取特定 xml 標(biāo)簽中的屬性值
本帖最后由 raps 于 2015-06-05 10:10 編輯

取出 web-app-deploy 標(biāo)簽的 path 值,標(biāo)簽內(nèi)的空格和換行不確定

  1. <test path="/w3c/sh">     <web-app-deploy
  2.         path="/www/abc"/>
  3. <web-app-deploy        path="/bbs/bcd"/>
  4. <from path="/df/-s"/>
  5. <web-app-deploy
  6.         path="/jpkc/cde" conf="none" />
  7. </test>
復(fù)制代碼
得到 /www/abc /bbs/bcd /jpkc/cde

能夠使用 grep 的 -oP 參數(shù)一次得到嗎?
原來的想法是:先將 “各種空格 [[:space:]]” 和 “各種換行 \n \r” 一類的全部替換成空格(但不知道怎么實(shí)現(xiàn),只會替換空格

  1. sed 's/[[:space:]]\+/ /g'
復(fù)制代碼
),然后用

  1.     grep -oP '(?<=web-app-deploy path\=\").*(?=\")'
復(fù)制代碼
實(shí)現(xiàn)。
作者: songyc_2015    時(shí)間: 2015-06-04 21:44
回復(fù) 1# raps
  1. grep -Po '(?<=path=")[^"]*' file
  2. grep -Po '(?<=docBase=")[^"]*' file
復(fù)制代碼

作者: raps    時(shí)間: 2015-06-05 09:48
回復(fù) 2# songyc_2015


    抱歉,沒有說明白,不是取出所有標(biāo)簽的相同值,而是取出特定標(biāo)簽的某個(gè)屬性,F(xiàn)已修改代碼
作者: hjfeng1988    時(shí)間: 2015-06-05 10:40
本帖最后由 hjfeng1988 于 2015-06-05 13:11 編輯

只能幫你到這兒了
  1. [root@66a ~]# sed -rn '/web-app-deploy/{/web-app-deploy$/N;s/.*path="(.*)".*/\1/g;p}' file
  2. /www/abc
  3. /bbs/bcd
  4. /jpkc/cde" conf="none
復(fù)制代碼
參考了680大神
  1. [root@66a ~]# sed -rn '/web-app-deploy/{/web-app-deploy$/N;s/.*path="([^"]+)".*/\1/g;p}' file
  2. /www/abc
  3. /bbs/bcd
  4. /jpkc/cde
復(fù)制代碼

作者: liuyu85    時(shí)間: 2015-06-05 10:58
本帖最后由 liuyu85 于 2015-06-05 10:59 編輯
  1. awk 'BEGIN{RS="<";ORS=" "}/web-app-deploy.*path=/{sub(/.*path="/,"");sub(/".*/,"");print}'
復(fù)制代碼
寫的有點(diǎn)爛,湊合著能用
作者: A_Traveler    時(shí)間: 2015-06-05 10:58
  1. awk -vRS='<web-app-deploy' -vFS='"+' 'NR>1{print $2}' files
復(fù)制代碼

作者: jason680    時(shí)間: 2015-06-05 12:00
本帖最后由 jason680 于 2015-06-05 12:07 編輯

回復(fù) 1# raps

$ cat FILE
<test path="/w3c/sh">     <web-app-deploy
        path="/www/abc"/>
<web-app-deploy        path="/bbs/bcd"/>
<from path="/df/-s"/>
<web-app-deploy
        path="/jpkc/cde" conf="none" />
</test>

$ awk -vRS="/>" '{$1=$1;if(match($0,/<web-app-deploy path="([^"]+)"/,a))print a[1]}' FILE
/www/abc
/bbs/bcd
/jpkc/cde


   
作者: songyc_2015    時(shí)間: 2015-06-05 21:49
回復(fù) 1# raps
  1. $sed -nr '/web-app-deploy/{s#.*<web-app-deploy[^>]*path="([^"]*)"[^>]*\/>#\1#p;t;N;s##\1#p;}' file
  2. /www/abc
  3. /bbs/bcd
  4. /jpkc/cde
復(fù)制代碼





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