从字符串中修剪字符串[重复]
Posted
技术标签:
【中文标题】从字符串中修剪字符串[重复]【英文标题】:Trim string from string [duplicate] 【发布时间】:2014-03-26 08:45:42 【问题描述】:我想从变量$FILES
中修剪这个字符串/tmp/files/
例如:
setenv FILES=/tmp/files/list
ONLY_L=`trim($FILES,'/tmp/files/')`
echo $ONLY_L
#should see only 'list'
我虽然在工作中使用sed
,但它看起来有点“丑陋”,因为所有\
都出现在/
之前。
【问题讨论】:
setenv
是 csh
命令,而不是 bash
命令。
【参考方案1】:
对于sed
,您不必使用/
例如,这也可以:
echo $FILES | sed 's#/tmp/files/##'
【讨论】:
【参考方案2】:ONLY_L="$FILES##*/"
或
ONLY_L="$(basename "$FILES")"
或
ONLY_L="$(echo "$FILES" | sed 's|.*/||')"
做你想做的事
【讨论】:
【参考方案3】:您应该为此使用 basename 命令。它会自动删除路径并只留下文件名:
basename /tmp/files/list
输出:
list
【讨论】:
【参考方案4】:您不需要sed
或调用工具。 bash
使用 string substitution
为您提供此功能。
$ FILES='/tmp/files/list'
# do this
$ echo "$FILES/\/tmp\/files\/"
list
# or this
$ echo "$FILES##*/"
list
【讨论】:
以上是关于从字符串中修剪字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章