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

Chinaunix

標(biāo)題: 請教字符串處理問題 [打印本頁]

作者: Unixell    時(shí)間: 2015-02-03 10:30
標(biāo)題: 請教字符串處理問題
請教一下,我想把下面的文本:
  1. 4 [192.168.9.11:5452:153, 192.168.9.11:5000:77, 192.168.9.11:4888:154]
  2. 3 [192.168.9.12:5452:171, 192.168.9.11:5000:85]
  3. 2 [192.168.9.13:5452:153, 192.168.9.11:5000:77, 192.168.9.11:4888:154]
  4. 1 [192.168.9.14:5452:96, 192.168.9.11:5000:96, 192.168.9.11:4888:192]
復(fù)制代碼
處理成這樣的格式:
  1. 4 [192.168.9.11:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
  2. 3 [192.168.9.12:5452:PORT, 192.168.9.11:5000:PORT]
  3. 2 [192.168.9.13:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
  4. 1 [192.168.9.14:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
復(fù)制代碼
我嘗試用sed解決,沒搞定,請各位大俠支招,多謝


作者: zxy877298415    時(shí)間: 2015-02-03 10:48
  1. awk -F '[0-9]*,|[0-9]*]' '{for (i=1;i<NF;i++) {if(i==NF-1) {$i=$i"PORT]"} else {$i=$i"PORT"}}}1' file
  2. 4 [192.168.9.11:5452:PORT  192.168.9.11:5000:PORT  192.168.9.11:4888:PORT]
  3. 3 [192.168.9.12:5452:PORT  192.168.9.11:5000:PORT]
  4. 2 [192.168.9.13:5452:PORT  192.168.9.11:5000:PORT  192.168.9.11:4888:PORT]
  5. 1 [192.168.9.14:5452:PORT  192.168.9.11:5000:PORT  192.168.9.11:4888:PORT]
復(fù)制代碼
回復(fù) 1# Unixell


   
作者: liion631818    時(shí)間: 2015-02-03 10:56
回復(fù) 1# Unixell
  1. px@ubuntu:~$ echo '4 [192.168.9.11:5452:153, 192.168.9.11:5000:77, 192.168.9.11:4888:154]' | sed -r 's/:[0-9]+([],])/:PORT\1/g'
  2. 4 [192.168.9.11:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
復(fù)制代碼

作者: 關(guān)陰月飛    時(shí)間: 2015-02-03 11:03
  1. awk '{gsub(/:[0-9]+,/,":PORT");gsub(/:[0-9]+]/,":PORT]")}1' urfile
復(fù)制代碼

作者: 冰諦    時(shí)間: 2015-02-03 11:08
本帖最后由 冰諦 于 2015-02-03 11:34 編輯

awk '{gsub(":*[,\\]]",":PORT,",$0)}1'   file  |  awk  -F ":" '{OFS=":";$NF="PORT]"}1'
作者: LikeLx    時(shí)間: 2015-02-03 11:12
  1. awk '{print gensub(/(:)[0-9]+(,|])/,"\\1PORT\\2","g",$0)}'
復(fù)制代碼

作者: mvplove123    時(shí)間: 2015-02-03 11:16
awk --re-interval -F"," '{for(i=1;i<=NF;i++){gsub(/:[0-9]{2,3}]?$/,"ORT",$i);printf $i;if(i==NF){printf "\n"}}}' a
作者: tasteoftime_90    時(shí)間: 2015-02-03 11:20
  1. sed -r 's/[0-9]+((,|]))/PORT\1/g'
復(fù)制代碼
回復(fù) 1# Unixell


   
作者: zsszss0000    時(shí)間: 2015-02-03 11:20
本帖最后由 zsszss0000 于 2015-02-03 11:21 編輯
sed -r 's/:[0-9]+([],])/: PORT\1/g'

高手能不能詳細(xì)的解答一下這句?回復(fù) 3# liion631818


   
作者: baochenggood    時(shí)間: 2015-02-03 11:41
好屌,受教了  回復(fù) 4# 關(guān)陰月飛


   
作者: network_sina    時(shí)間: 2015-02-03 12:06
回復(fù) 6# LikeLx awk '{print gensub(/(:[0-9]+(,|]))/,"\\1ORT","g"}' file 幫我看下這個(gè)不想引用第二次這個(gè)怎么支持?jǐn)U展正則,最主要是在gensub怎么匹配,]  寫成[,|]] ([,|]]) 都不行
作者: jcdiy0601    時(shí)間: 2015-02-03 13:21
  1. sed -r 's/(:[0-9]+)(:[0-9]+)/\1\:port/g' test
復(fù)制代碼

作者: reyleon    時(shí)間: 2015-02-03 13:34
  1. sed -r 's/\w+:\w+:\w+/&:PORT/g' file
復(fù)制代碼

作者: Unixell    時(shí)間: 2015-02-03 13:49
回復(fù) 13# reyleon


    這個(gè)是啥意思,能解釋一下么
多謝大俠

作者: Unixell    時(shí)間: 2015-02-03 13:51
回復(fù) 2# zxy877298415


    '[0-9]*,|[0-9]*]'是啥意思?請教。
作者: ly5066113    時(shí)間: 2015-02-03 13:53
  1. sed 's/:[0-9]\{,3\}\>/:PORT/g' file
復(fù)制代碼

作者: Unixell    時(shí)間: 2015-02-03 13:55
回復(fù) 16# ly5066113


    \> 是啥意思 大俠?


作者: liion631818    時(shí)間: 2015-02-03 14:05
回復(fù) 9# zsszss0000


    就是匹配 :99, 或者 :99]這樣的情況,然后替換
作者: A_Traveler    時(shí)間: 2015-02-03 17:25
本帖最后由 A_Traveler 于 2015-02-03 17:31 編輯
  1. awk -vFS=',' '{for (i=1;i<=NF;i++){a=gensub(/(:)[0-9]+/,"\\1PORT",2,$i);printf a;printf i<NF?FS:"\n"}}' ufiles
復(fù)制代碼

作者: zriplj    時(shí)間: 2015-02-03 17:49
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: zsszss0000    時(shí)間: 2015-02-03 17:58
本帖最后由 zsszss0000 于 2015-02-03 18:02 編輯
([],])

是否可以改為
([,]])

為什么我試了一下 不可以呢?

是不是我也可以理解為
  1. sed -r 's/:[0-9]+(,)/:PORT\1/g;s/:[0-9]+(])/:PORT\1/g'
復(fù)制代碼
回復(fù) 18# liion631818


   
作者: zsszss0000    時(shí)間: 2015-02-03 18:09
[],]
應(yīng)該是匹配后面的,或者是]回復(fù) 21# zriplj


   
作者: zriplj    時(shí)間: 2015-02-03 18:12
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: zriplj    時(shí)間: 2015-02-03 18:24
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: zsszss0000    時(shí)間: 2015-02-03 18:35
TIM大神\>表示什么?回復(fù) 16# ly5066113


   
作者: 我是一隻羊    時(shí)間: 2015-02-03 22:55
本帖最后由 我是一隻羊 于 2015-02-03 22:55 編輯

sed -r 's/:[0-9]+([],])/:PORT\1/g' test
作者: reyleon    時(shí)間: 2015-02-03 22:58
回復(fù) 25# zriplj


    還真是, 我以為要在后面加一個(gè) ORT  ,   懶得改了
作者: liion631818    時(shí)間: 2015-02-04 09:13
回復(fù) 22# zsszss0000


    ([,]])
這個(gè)寫法是錯(cuò)的,要在class里出現(xiàn)[],需要注意順序

后面給出的方法沒有錯(cuò),只不過是把[],]分開寫了吧
作者: tuyajie    時(shí)間: 2015-02-04 10:45
完全看不懂了,太贊了
作者: network_sina    時(shí)間: 2015-02-04 10:50
回復(fù) 6# LikeLx 對的 就是替換一次 我試了不行啊
作者: LikeLx    時(shí)間: 2015-02-04 12:09
回復(fù) 31# network_sina

你要是只替換一次,就把g改成1
   
作者: 聆雨淋夜    時(shí)間: 2015-02-04 17:20
  1. sed -r 's/(:)[^:]+(,|])/\1PORT\2/g' file
  2. 4 [192.168.9.11:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
  3. 3 [192.168.9.12:5452:PORT, 192.168.9.11:5000:PORT]
  4. 2 [192.168.9.13:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
  5. 1 [192.168.9.14:5452:PORT, 192.168.9.11:5000:PORT, 192.168.9.11:4888:PORT]
復(fù)制代碼

作者: wangzhen_518    時(shí)間: 2015-02-11 22:02
sed -e 's/:[0-9]*,/ORT,/g' -e 's/:[0-9]*]/ORT]/g' txt1
作者: wangzhen_518    時(shí)間: 2015-02-11 22:03
wangzhen_518 發(fā)表于 2015-02-11 22:02
sed -e 's/:[0-9]*,/ORT,/g' -e 's/:[0-9]*]/ORT]/g' txt1


暈,P咋顯示成笑臉了呢。。。
作者: 我愛你我的菜    時(shí)間: 2015-09-10 09:20
回復(fù) 3# liion631818


    學(xué)習(xí)了,




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