关于LINUX的SED:帮忙详细解释下面命令中符号的含义.sed 's/\.gds[.]*

关于LINUX的SED:帮忙详细解释下面命令中符号的含义.sed 's/.gds[.]*
关于LINUX的SED:帮忙详细解释下面命令中符号的含义.
sed 's/.gds[.]*//g
你才是傻瓜 1年前 已收到1个回答 举报

shixulu 春芽

共回答了20个问题采纳率:95% 举报

s:替换
.gds[.]*:以.开头,之后是gds, [.]* 这个写的比较奇怪,感觉是若干个.(0-n)
//:中间什么都没有,相当于用空字符串替换,即将前面那个“.gds[.]*”模式匹配的内容删除
g:如果一行中有多个匹配,都替换

1年前 追问

2

你才是傻瓜 举报

解释的太好了,就是那个应该是转义字符,把.变成普通字符

你才是傻瓜 举报

整个命令的作用是一旦遇到.gds及其后面所有的字符都删除

举报 shixulu

是的,所以我说是以.开头的。 还有就是并不是所有字符都删除,删除的是.gds和若干个.。因为.放在[]中也变成了普通字符了。 例如:echo "sod sad ooo"|sed 's/sad[.]*//',结果是sod ooo 如果.表示任意字符,那么结果应该是'sod '了。

你才是傻瓜 举报

你说的对,那怎么才能实现一旦遇到.gds就把从它到最后的字符都删掉呢?

举报 shixulu

正则表达式修改为 .gds.* 即用.表示任意字符,*表示0到N个就可以了。

你才是傻瓜 举报

谢谢。可见原来的代码写错了。

你才是傻瓜 举报

而且最后那个g可以不需要了。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.105 s. - webmaster@yulucn.com