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

  免費注冊 查看新帖 |

Chinaunix

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

[文本處理] 關(guān)于匹配一段內(nèi)容,修改匹配到的這一段內(nèi)容中其中一行的問題 [復(fù)制鏈接]

論壇徽章:
1
未羊
日期:2014-02-10 15:04:47
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-01-22 11:23 |只看該作者 |倒序瀏覽
本帖最后由 喵星人Nginx 于 2015-01-22 11:39 編輯

如下顯示其中相同的配置重復(fù)出現(xiàn):
  1. [DB01]
  2. IP=192.168.1.1
  3. USER=guset
  4. PASS=123456
  5. DIR=/home/guest
  6. DATE=01
  7. TIME=01
  8. ID=01

  9. [DB02]
  10. IP=192.168.1.2
  11. USER=guset
  12. PASS=123456
  13. DIR=/home/guest
  14. DATE=01
  15. TIME=01
  16. ID=01

  17. [VS01]
  18. IP=192.168.1.3
  19. USER=guset
  20. PASS=123456
  21. DIR=/home/guest
  22. DATE=01
  23. TIME=01
  24. ID=01

  25. [BS01]
  26. IP=192.168.1.66
  27. USER=guset
  28. PASS=123456
  29. DIR=/home/guest
  30. DATE=01
  31. TIME=01
  32. ID=01

  33. [DB03]
  34. IP=192.168.1.99
  35. USER=guset
  36. PASS=123456
  37. DIR=/home/guest
  38. DATE=01
  39. TIME=01
  40. ID=01
復(fù)制代碼
需求是匹配到以"DB"開頭的這一段內(nèi)容,然后替換其中"DATE=01"這段為"DATE=02" 然后要回寫到myfile里..

我現(xiàn)在只能匹配到 匹配到就不知道怎么做了,想過匹配到給指定的行打標記然后再修改,但是不知道怎么實現(xiàn)
  1. sed -n '/\[DB/,/ID=01/p' myfile
復(fù)制代碼
  1. [DB01]
  2. IP=192.168.1.1
  3. USER=guset
  4. PASS=123456
  5. DIR=/home/guest
  6. DATE=01
  7. TIME=01
  8. ID=01
  9. [DB02]
  10. IP=192.168.1.2
  11. USER=guset
  12. PASS=123456
  13. DIR=/home/guest
  14. DATE=01
  15. TIME=01
  16. ID=01
  17. [DB03]
  18. IP=192.168.1.99
  19. USER=guset
  20. PASS=123456
  21. DIR=/home/guest
  22. DATE=01
  23. TIME=01
  24. ID=01
復(fù)制代碼
求教各位大神

論壇徽章:
9
2015亞冠之大阪鋼巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26處女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37雙魚座
日期:2014-07-25 10:09:54程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00
2 [報告]
發(fā)表于 2015-01-22 11:31 |只看該作者
回復(fù) 1# 喵星人Nginx

是要這樣子么
  1. sed -n 's/DATE=01/DATE=02/;/\[DB/,/ID=01/p' myfile
復(fù)制代碼

論壇徽章:
1
未羊
日期:2014-02-10 15:04:47
3 [報告]
發(fā)表于 2015-01-22 11:35 |只看該作者
回復(fù) 2# Buring__


    我試了下,是這樣的...看你這個貌似是先替換然后再匹配啊.....

論壇徽章:
1
未羊
日期:2014-02-10 15:04:47
4 [報告]
發(fā)表于 2015-01-22 11:39 |只看該作者
回復(fù) 2# Buring__


    如果用你這段回寫回文件的話....就把所有其他無關(guān)的行的"DATE=01"替換成"DATE=02" 然后DB都變成兩行了....

論壇徽章:
9
2015亞冠之大阪鋼巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26處女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37雙魚座
日期:2014-07-25 10:09:54程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00
5 [報告]
發(fā)表于 2015-01-22 11:39 |只看該作者
加個管道這樣紙不就行了嗎
  1. sed -n '/\[DB/,/ID=01/p' urfile|sed 's/DATE=01/DATE=02/'
復(fù)制代碼

論壇徽章:
9
2015亞冠之大阪鋼巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26處女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37雙魚座
日期:2014-07-25 10:09:54程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00
6 [報告]
發(fā)表于 2015-01-22 11:41 |只看該作者
這樣紙
  1. sed -n '/\[DB/,/ID=01/{s/DATE=01/DATE=02/;p}' urfile
復(fù)制代碼

論壇徽章:
1
未羊
日期:2014-02-10 15:04:47
7 [報告]
發(fā)表于 2015-01-22 11:55 |只看該作者
本帖最后由 喵星人Nginx 于 2015-01-22 11:58 編輯

回復(fù) 6# Buring__


用了
  1. sed -n '/\[DB/,/ID=01/{s/DATE=01/DATE=02/;p}' urfile
復(fù)制代碼
這個以后 其他無關(guān)項不會修改了...但是匹配到的內(nèi)容 也就是DB的行全部會重復(fù)兩遍....
就是這個樣子..
  1. [DB01]
  2. [DB01]
  3. IP=192.168.1.1
  4. IP=192.168.1.1
  5. USER=guset
  6. USER=guset
  7. PASS=123456
  8. PASS=123456
  9. DIR=/home/guest
  10. DIR=/home/guest
  11. DATE=02
  12. DATE=02
  13. TIME=01
  14. TIME=01
  15. ID=01
  16. ID=01

  17. [DB02]
  18. [DB02]
  19. IP=192.168.1.2
  20. IP=192.168.1.2
  21. USER=guset
  22. USER=guset
  23. PASS=123456
  24. PASS=123456
  25. DIR=/home/guest
  26. DIR=/home/guest
  27. DATE=02
  28. DATE=02
  29. TIME=01
  30. TIME=01
  31. ID=01
  32. ID=01

  33. [VS01]
  34. IP=192.168.1.3
  35. USER=guset
  36. PASS=123456
  37. DIR=/home/guest
  38. DATE=01
  39. TIME=01
  40. ID=01

  41. [BS01]
  42. IP=192.168.1.66
  43. USER=guset
  44. PASS=123456
  45. DIR=/home/guest
  46. DATE=01
  47. TIME=01
  48. ID=01

  49. [DB03]
  50. [DB03]
  51. IP=192.168.1.99
  52. IP=192.168.1.99
  53. USER=guset
  54. USER=guset
  55. PASS=123456
  56. PASS=123456
  57. DIR=/home/guest
  58. DIR=/home/guest
  59. DATE=02
  60. DATE=02
  61. TIME=01
  62. TIME=01
  63. ID=01
  64. ID=01
復(fù)制代碼

論壇徽章:
1
未羊
日期:2014-02-10 15:04:47
8 [報告]
發(fā)表于 2015-01-22 12:12 |只看該作者
回復(fù) 6# Buring__


    翻了下以前的帖子...貌似有類似的我就試了下 結(jié)果成功了...
  1. sed '/\[DB/{:1;N;/ID=01/!b1;s/\nDATE=01\n/\nDATE=02\n/}'
復(fù)制代碼

論壇徽章:
30
申猴
日期:2014-04-10 09:43:532015年亞洲杯紀念徽章
日期:2015-03-20 14:40:232015亞冠之阿爾納斯爾
日期:2015-06-02 18:59:042015亞冠之阿爾希拉爾
日期:2015-06-30 15:22:572015亞冠之大阪鋼巴
日期:2015-07-20 10:44:332015亞冠之阿爾納斯爾
日期:2015-10-28 14:57:5215-16賽季CBA聯(lián)賽之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16賽季CBA聯(lián)賽之山西
日期:2016-07-25 21:54:2715-16賽季CBA聯(lián)賽之北京
日期:2016-10-27 12:07:2315-16賽季CBA聯(lián)賽之八一
日期:2017-07-07 16:39:0915-16賽季CBA聯(lián)賽之吉林
日期:2017-09-04 12:14:43
9 [報告]
發(fā)表于 2015-01-22 12:27 |只看該作者
  1. awk -v RS="[" 'NR>1{if($1~/DB/) {printf "[";print gensub(/DATE=01/,"DATE=02",$0);} else {print "["$0}}' mypfile
復(fù)制代碼
回復(fù) 1# 喵星人Nginx


   

論壇徽章:
7
申猴
日期:2014-12-21 13:57:24巳蛇
日期:2014-12-25 22:27:08申猴
日期:2015-01-19 08:07:36辰龍
日期:2015-02-04 11:40:06處女座
日期:2015-02-04 11:40:412015年亞洲杯之卡塔爾
日期:2015-03-06 12:01:322015年亞洲杯之烏茲別克斯坦
日期:2015-03-31 13:43:57
10 [報告]
發(fā)表于 2015-01-22 13:30 |只看該作者
  1. sed  '/\[DB/,/^$/ s/DATE=01/DATE=02/' data
復(fù)制代碼
要這樣?每組數(shù)據(jù)是用空行分割的吧
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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