我在unix目录中有以下文件
/home/files/myfiles/good.txt
我需要单独提取文件路径
预期输出:/home/files/myfiles
注意:我无法使用剪切操作,因为文件路径是动态的。我将文件名和文件路径作为shell脚本的单个用户输入
答案 0 :(得分:14)
尝试
$ dirname /home/files/myfiles/good.txt
答案 1 :(得分:1)
应该做的工作:
echo /home/files/myfiles/good.txt | sed s,/*[^/]*$,,
答案 2 :(得分:1)
如果不生成其他流程,您可以使用parameter expansion:
file=/home/files/myfiles/good.txt
echo "${file%/*}"
/home/files/myfiles
答案 3 :(得分:0)
FWIW,cut
可以在rev
$ echo "/home/files/myfiles/good.txt" | rev | cut -d/ -f2- | rev
/home/files/myfiles
$ echo "/home/files/myfiles/yourfiles/good.txt" | rev | cut -d/ -f2- | rev
/home/files/myfiles/yourfiles