Chinaunix
标题:
sed数据处理还是没搞懂=。=
[打印本页]
作者:
zjmcu
时间:
2017-11-08 16:25
标题:
sed数据处理还是没搞懂=。=
sed -r 's#([^/]*)//.*#\1#'
这个是什么意思啊。
作者:
Riet
时间:
2017-11-09 14:19
只保留不含/的字符串
作者:
zjmcu
时间:
2017-11-14 12:52
回复
2#
Riet
能和我详细说明一下吗?谢谢
作者:
cao627
时间:
2017-11-14 22:29
sed -r 's#([^/]*)//.*#\1#'
#号是分隔符号 前面两个#号之间是正则表达。后面两个##之间表示前面正则匹配的内容替换为什么
\1 表示前面 带()的正则匹配的内容,即 ([^/]*) 匹配的内容
([^/]*) 括号里的正则表示匹配任意多个 非/ 字符 带上 ()表示
捕获
捕获的内容可以被引用 如上面的\1就是表示对第一个捕获的引用。
([^/]*)//.* 表示匹配任意非/字符开头然后接两 // 再接任意字符 如字符窜 aaa//bbb 会被匹配
如果对正则不懂 就去找资料看一下
这里新手多数迷惑的地方大概是#号
sed 命令中第一s命令后面的跟的字符自动成为分隔符号 这里s后跟的是#号,所以#就成了分隔符号
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2