作业帮 > 语文 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:语文作业 时间:2024/05/22 14:10:35
关于LINUX的SED:帮忙详细解释下面命令中符号的含义.sed 's/\.gds[.]*
关于LINUX的SED:帮忙详细解释下面命令中符号的含义.
sed 's/\.gds[.]*//g
s:替换
\.gds[.]*:以.开头,之后是gds, [.]* 这个写的比较奇怪,感觉是若干个.(0-n)
//:中间什么都没有,相当于用空字符串替换,即将前面那个“\.gds[.]*”模式匹配的内容删除
g:如果一行中有多个匹配,都替换
再问: 解释的太好了,就是那个\应该是转义字符,把.变成普通字符
再问: 整个命令的作用是一旦遇到.gds及其后面所有的字符都删除
再答: 是的,所以我说是以.开头的。 还有就是并不是所有字符都删除,删除的是.gds和若干个.。因为.放在[]中也变成了普通字符了。 例如:echo "sod sad ooo"|sed 's/sad[.]*//',结果是sod ooo 如果.表示任意字符,那么结果应该是'sod '了。
再问: 你说的对,那怎么才能实现一旦遇到.gds就把从它到最后的字符都删掉呢?
再答: 正则表达式修改为 \.gds.* 即用.表示任意字符,*表示0到N个就可以了。
再问: 谢谢。可见原来的代码写错了。
再问: 而且最后那个g可以不需要了。