shell 的用sed替换的问题。
答案:4 悬赏:10 手机版
解决时间 2021-04-01 04:10
- 提问者网友:浮克旳回音
- 2021-03-31 19:36
shell 的用sed替换的问题。
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-03-31 20:34
1.s/.*(time.*) ms/\1/,我想你不了解的主要是\1这个吧,我举个例子,s/regexp/\1/,这句的意思就是用regexp中的第1个子表达式的内容来替换符合表达式regexp的内容。放在你这个例子中就是,s/.*(time.*) ms/\1/,第1个正则中(time.*)是子表达式,第二个中的\1是指将满足.*(time.*) ms的内容替换为第1个子表达式(time.*),所以输出为time=XX
2.s/.*time=//,要明白sed中如何替换文本的,s/regexp1/replacement/,是用replacement来替换regexp1表达式所匹配的内容,在你这个例子中要替换的表达式是/.*time=/,替换的内容为空,//,所以实际的意思就是将/.*time=/匹配的内容删除,输出为xx ms
3.[0-9.]的意思是匹配数字0-9或.,+的意思是重复前一个匹配1次以上,整个的意思就是匹配连续的数字或点号
2.s/.*time=//,要明白sed中如何替换文本的,s/regexp1/replacement/,是用replacement来替换regexp1表达式所匹配的内容,在你这个例子中要替换的表达式是/.*time=/,替换的内容为空,//,所以实际的意思就是将/.*time=/匹配的内容删除,输出为xx ms
3.[0-9.]的意思是匹配数字0-9或.,+的意思是重复前一个匹配1次以上,整个的意思就是匹配连续的数字或点号
全部回答
- 1楼网友:人類模型
- 2021-03-31 23:25
sed "s#\/#\\\/#g" Temp_ScrTxt.txt
试试看
如果还不行 你看看eval命令
试试看
如果还不行 你看看eval命令
- 2楼网友:你哪知我潦倒为你
- 2021-03-31 22:22
最后一句改成
sed -i 's/'"$x"'/'"$y"'/g'
单引号内不能变量替换,要用双引号
sed -i 's/'"$x"'/'"$y"'/g'
单引号内不能变量替换,要用双引号
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯