【发布时间】:2013-06-03 09:20:13
【问题描述】:
这是一个关于正则表达式的问题。
我有以下代码:
程序
#!/bin/sh
temp="/home/user/game/log.txt"
echo $temp | sed -e "s#\(.*\)/.*#\1#"
输出
/home/用户/游戏
问题
这家伙是什么意思——s#\(.*\)/.*#\1#?
我从网上搜索,我知道一些含义,例如:
s - 替代
. - 任意字
* - 前面的单词可以重复0到无限次
但是我还是不明白这段代码的意思,虽然我知道函数
【问题讨论】:
-
您应该使用 basename 仅供参考。
-
*表示 0 或更多+表示 1 或更多 -
shyam > 感谢您的指正^^
-
squiguy > 感谢您的建议,我已阅读您的参考@@"
-
@squiguy 我猜你的意思是
dirname,而不是basename。