例如,我有一条路径
x=/home/john/filename.txt
如何使用/home/john
功能仅提取expr
?
答案 0 :(得分:3)
您可以使用dirname:
$ x=/home/john/filename.txt
$ dirname $x
/home/john
编辑:您似乎在寻找替代方案:
$ x=/home/john/filename.txt
$ echo ${x%/*}
/home/john
$ echo ${x:0:10}
/home/john
编辑:OP似乎正在寻找使用expr
的解决方案。假定给定的目录名长度,接受的解决方案工作。以下内容没有做出这样的假设:
$ x=/home/john/filename.txt
$ expr $x : '\(.*\)/.*'
/home/john
答案 1 :(得分:0)
这是使用expr
函数
$ x=/home/john/filename.txt
$ expr $x : '\(.\{10\}\)'
/home/john
编辑:如果您的路径将以/home/name
开头,然后路径长度将使用此模式:
$ expr $x : '\([/][a-z]*[/][a-z]*\)'
/home/john