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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3556 | 回復(fù): 13
打印 上一主題 下一主題

[文本處理] 這個xml用shell怎么處理,求高手指點 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-02-12 20:59 |只看該作者 |倒序瀏覽
xml 文件及處理要求如下:
  1. <root>
  2.     <pattern>
  3.         <A></A>
  4.         <B></B>
  5.         <C></C>
  6.     </pattern>
  7.    <pattern>
  8.         <A></A>
  9.         <B></B>
  10.         <C></C>
  11.     </pattern>
  12.     <pattern>
  13.         <C></C>      <!-- A,B,C順序可能不一樣 -->
  14.         <A></A>
  15.         <B></B>
  16.     </pattern>
  17.     <pattern>
  18.         <A></A>
  19.         <B></B>
  20.         <C>1.0</C>   <!-- 只轉(zhuǎn)換那些A,B,C之間全為空的 -->
  21.     </pattern>
  22. </root>
復(fù)制代碼
處理后:
  1. <root>
  2.     <pattern>
  3.         <A>0</A>
  4.         <B>0</B>
  5.         <C>0</C>
  6.     </pattern>
  7.    <pattern>
  8.         <A>0</A>
  9.         <B>0</B>
  10.         <C>0</C>
  11.     </pattern>
  12.     <pattern>
  13.         <C>0</C>   
  14.         <A>0</A>
  15.         <B>0</B>
  16.     </pattern>
  17.     <pattern>
  18.         <A></A>
  19.         <B></B>
  20.         <C>1.0</C>   
  21.     </pattern>
  22. </root>
復(fù)制代碼

論壇徽章:
0
2 [報告]
發(fā)表于 2014-02-12 21:36 |只看該作者
  1. 替換 >< 為 >0<
復(fù)制代碼

論壇徽章:
29
程序設(shè)計版塊每日發(fā)帖之星
日期:2016-02-29 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-08-10 10:33:1115-16賽季CBA聯(lián)賽之深圳
日期:2016-08-17 15:07:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-11-07 11:33:5015-16賽季CBA聯(lián)賽之廣夏
日期:2016-11-15 09:13:31CU十四周年紀念徽章
日期:2016-11-24 14:12:25極客徽章
日期:2016-12-07 14:03:4015-16賽季CBA聯(lián)賽之深圳
日期:2016-12-07 17:15:2715-16賽季CBA聯(lián)賽之北京
日期:2016-12-22 09:30:0115-16賽季CBA聯(lián)賽之深圳
日期:2016-12-22 10:49:2115-16賽季CBA聯(lián)賽之山西
日期:2017-02-10 09:05:3215-16賽季CBA聯(lián)賽之同曦
日期:2017-02-27 14:19:08
3 [報告]
發(fā)表于 2014-02-12 23:02 |只看該作者
sed 's/></>0</'

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
4 [報告]
發(fā)表于 2014-02-13 00:04 |只看該作者
@零二年的夏天@elu_ligao
LZ的要求:
<!-- 只轉(zhuǎn)換那些A,B,C之間全為空的 -->

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
5 [報告]
發(fā)表于 2014-02-13 00:19 |只看該作者
  1. awk -vRS='pattern' '!/>\S+</{gsub(/></,">0<")}{printf $0RS}'
復(fù)制代碼
  1. sed -r '/<pattern>/{:1;N;/<\/pattern>/!b1;/>\S+</b;s/></>0</g}'
復(fù)制代碼

論壇徽章:
0
6 [報告]
發(fā)表于 2014-02-13 08:35 |只看該作者
yestreenstars 發(fā)表于 2014-02-13 00:19

多謝大牛~

論壇徽章:
0
7 [報告]
發(fā)表于 2014-02-13 08:58 |只看該作者
yestreenstars 發(fā)表于 2014-02-13 00:19


sed的那個輸出符合要求,awk的把最后一個pattern中的含有1.0的A,B處都改了,不是預(yù)期的;
sed中的,!b1;/>\S+</b這兩句分別是什么意思,大俠能否說明下,謝謝:wink:
PS:求指導,shell新手,shell教程哪個比較好,想去買來看下

論壇徽章:
0
8 [報告]
發(fā)表于 2014-02-13 09:25 |只看該作者
本帖最后由 zjdick 于 2014-02-13 09:27 編輯

回復(fù) 7# gigglesun
b1等于goto 1
\S是正則表達式,非空格


   

論壇徽章:
6
摩羯座
日期:2013-12-27 09:45:04技術(shù)圖書徽章
日期:2014-01-27 12:40:06辰龍
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
9 [報告]
發(fā)表于 2014-02-13 09:29 |只看該作者
回復(fù) 5# yestreenstars
此版本awk,不能正常運行
  1. awk -vRS='pattern' '!/>\S+</{gsub(/></,">0<")}{printf $0RS}'
復(fù)制代碼
  1. awk --version
  2. GNU Awk 3.1.5
  3. Copyright (C) 1989, 1991-2005 Free Software Foundation.

  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2 of the License, or
  7. (at your option) any later version.

  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. GNU General Public License for more details.

  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software
  14. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
復(fù)制代碼
另外,最后多一個pattern

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
10 [報告]
發(fā)表于 2014-02-13 09:34 |只看該作者
回復(fù) 7# gigglesun

/<\/pattern>/!b1表示除了匹配到</pattern>不跳轉(zhuǎn)到標簽1所在之處,其他的都跳轉(zhuǎn)。
/>\S+</b表示匹配到>和<之間含有非空白符時跳轉(zhuǎn)到腳本的末尾。
   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP