我想从变量/tmp/files/
修剪此字符串$FILES
例如:
setenv FILES=/tmp/files/list
ONLY_L=`trim($FILES,'/tmp/files/')`
echo $ONLY_L
#should see only 'list'
我虽然使用sed
来完成这项工作,但它看起来有点“丑陋”,因为\
之前的所有/
都来了。
答案 0 :(得分:3)
对于sed
,您不必使用/
例如,这也有效:
echo $FILES | sed 's#/tmp/files/##'
答案 1 :(得分:1)
ONLY_L="${FILES##*/}"
或
ONLY_L="$(basename "$FILES")"
或
ONLY_L="$(echo "$FILES" | sed 's|.*/||')"
做你想做的事
答案 2 :(得分:1)
您应该使用basename命令。它会自动删除路径并只留下文件名:
basename /tmp/files/list
输出:
list
答案 3 :(得分:0)
您不需要sed
或致电工具。 bash
使用string substitution
为您提供此功能。
$ FILES='/tmp/files/list'
# do this
$ echo "${FILES/\/tmp\/files\/}"
list
# or this
$ echo "${FILES##*/}"
list