亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
如何使用sed或awk 替換文本中包含有特殊字符//等 內(nèi)容
[打印本頁]
作者:
cyyjs123
時(shí)間:
2015-05-20 16:34
標(biāo)題:
如何使用sed或awk 替換文本中包含有特殊字符//等 內(nèi)容
比如文件shell.ini中包含有如下 一行 abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350"]。
然后想把這行替換為如下格式的: abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350","aa.tp://daylight-clear-data@127.0.0.2:2350","aa.tp://daylight-clear-data@127.0.0.3:2350"]. 其實(shí)主要是多添加了[]中的同一個(gè)內(nèi)容,但ip不同。
求各位大俠,賜教
主要是這個(gè)里邊包含了 // 這符號(hào),經(jīng)常遇到報(bào) sed: -e expression #1, char 2: unterminated `s' command 的錯(cuò)誤
作者:
破曉丶丘比特
時(shí)間:
2015-05-20 16:55
echo 'abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350"]' |sed -r 's/(abc-efg.*)\[(.*@)([0-9]+\.[0-9]+\.[0-9]+\.)[0-9]+(:2350\")\]/\1\[\2\31\4\,\2\32\4\,\2\33\4\]/'
abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350","aa.tp://daylight-clear-data@127.0.0.2:2350","aa.tp://daylight-clear-data@127.0.0.3:2350"]
是這個(gè)意思么?
作者:
ly5066113
時(shí)間:
2015-05-20 17:04
回復(fù)
1#
cyyjs123
寫 s 命令的時(shí)候用 #
s#xxx#ooo#
作者:
songyc_2015
時(shí)間:
2015-05-20 21:43
回復(fù)
1#
cyyjs123
這個(gè)awk寫得比較戳。。。。
awk --re-interval -F'[][]' -vOFS="[" '{s=$2;for(i=2;i<=3;i++){s=s","gensub(/(([0-9]+.){3})[0-9]+/,"\\1"i,1,$2)}$2=s"]";NF-=1}1' file
復(fù)制代碼
作者:
zxy877298415
時(shí)間:
2015-05-20 23:07
awk '{match($0,"([^[]+)\\[(.+\\.)([0-9]+)(.+\042)",a);}END{printf a[1]"[";for(i=0;i<=2;i++){printf "%s%d%s",a[2],a[3]+i,a[4];if(i<=1)printf ","}print "]"}' file
復(fù)制代碼
回復(fù)
1#
cyyjs123
作者:
cyyjs123
時(shí)間:
2015-05-21 09:40
回復(fù)
2#
破曉丶丘比特
大俠好厲害。和我預(yù)想的有點(diǎn)出入,我一開始描述不詳細(xì)。在描述下:
如 shell.ini中包含的信息如下:
abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350"]
然后呢,我創(chuàng)建一個(gè)shell腳本,然后執(zhí)行這腳本后呢,shell.ini中的文件內(nèi)容變成了這樣
abc-efg = ["aa.tp://daylight-clear-data@127.0.0.1:2350","aa.tp://daylight-clear-data@127.0.0.2:2350","aa.tp://daylight-clear-data@127.0.0.3:2350"]
腳本的執(zhí)行方式:./shell.sh ip1 ip2 ip3 shell.ini.也就是說這個(gè)ip不是固定的,每次使用參數(shù)傳進(jìn)去,這樣方便一些
您寫的這個(gè),后面: /\1\[\2\31\4\,\2\32\4\,\2\33\4\]/' 這部分不明白。使用不知道到如果使用參數(shù)的話,該怎么樣寫呢, 先謝過大俠了
作者:
cyyjs123
時(shí)間:
2015-05-21 10:06
回復(fù)
5#
zxy877298415
這個(gè)執(zhí)行了一下,返回[0,1,2] ,應(yīng)該不對(duì)
作者:
cyyjs123
時(shí)間:
2015-05-21 10:07
回復(fù)
4#
songyc_2015
執(zhí)行了一次,是實(shí)現(xiàn)了,但是如何 能夠靈活修改 這個(gè) ip值呢,請(qǐng)賜教,多謝了。比如 參數(shù)傳入后,直接由參數(shù)替換這其中的3個(gè)ip。
作者:
cyyjs123
時(shí)間:
2015-05-21 10:41
回復(fù)
4#
songyc_2015
這樣還不行,會(huì)把文中多有 [。。。] 格式 這樣的,都會(huì)復(fù)制修改成三份。
作者:
lxh9090
時(shí)間:
2015-05-21 13:50
回復(fù)
6#
cyyjs123
sed -n 's#\("aa.tp://daylight-clear-data@127.0.0.1:2350"\)#\1,\1,\1#p' shell.ini 這個(gè)是修改行內(nèi)容的--靈活修改ip坐等大神解答
作者:
cyyjs123
時(shí)間:
2015-05-21 18:26
終于搞定了。
只需要如下格式即可。原來之前一直沒有對(duì) [和" 這類特殊字符做\ 反斜杠的處理。
sed -i "s/abc-efg = \[\"aa.tp:\/\/daylight-clear-data@127.0.0.1:2350\"\]/abc-efg = \[\"aa.tp:\/\/daylight-clear-data@$1:2350\",\"aa.tp:\/\/daylight-clear-data@$2:2350\",\"aa.tp:\/\/daylight-clear-data@$2:2350\"\]/" $4
但是sed中有哪些這樣的特殊字符必須要加呢,不知道有木有官方說明文檔或者經(jīng)驗(yàn)?zāi)。~!@#$%^&*()_+|{}:"<>?.不知道這其中那些需要。
多謝各位大神了!
作者:
jason680
時(shí)間:
2015-05-22 15:22
本帖最后由 jason680 于 2015-05-22 15:27 編輯
回復(fù)
11#
cyyjs123
BRE與ERE的差異
http://blog.chinaunix.net/uid-28240115-id-4315669.html
正則表達(dá)式
http://zh.wikipedia.org/zh-cn/%E ... 8%E8%BE%BE%E5%BC%8F
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2