linux里的shell sed用法
看到有个shell脚本文件里有如下一行代码:
self_path=`echo "$0" | sed 's,/[^/]*$,,'`
其中,$0是路径。
sed的格式是s后面紧跟着/符号,为什么中间有个逗号,后面跟着的,/[^/]*$,,'这一串也费解。。。
[解决办法]
就是将比如说/home/freetstar/test这样的路径的test去掉,得到/home/freetstar
's,/[^/]*$,,'
[解决办法]
嗯,s后面跟着就是分隔符,一般是大多用/但是你的例子用逗号或其他好点,若用一堆转义符号\/看的就辛苦了...
[解决办法]
s/a/b/可以写成
s,,,
s#a#b#
s!a!b!
s{a}{b}
区别在于是否转义分隔符。
比如s/\//\\/里,要替换/,需要用\转义。
如果这种转义很多,看起来就比较乱。
如果换一个分隔符,就不需要转义了。