嘿伙计们,我正在尝试删除字符串中最后一个/
之后的所有内容(参数)。我遇到了一些我无法弄明白的问题..对于我犯过的任何愚蠢的错误提前抱歉
myvar1 = $(echo $1 | awk -f "/" '(print $NF)')
示例输入:
./根/桌面/测试
示例输出:
测试
答案 0 :(得分:3)
您应该使用-F
,而不是-f
,但也有其他问题。将整行更改为:
myvar1=$(echo "$1" | awk -F'/' '{print $NF}')
如果你真的想使用echo,awk和pipe来代替内置的bash。
此外,上面选择了最后一个'/'之后的所有内容都没有删除它之后的所有内容,所以它不清楚你真正想要的是什么。如果您无法从中得出结论,请发布一些样本输入和预期输出:
$ x="a/b/c/d"; echo "${x##*/}"
d
$ x="a/b/c/d"; echo "${x%/*}"
a/b/c
答案 1 :(得分:1)
只是另一种解决方案:
$ x=`basename /a/b/file`; echo $x
file
$ x=`dirname /a/b/file` ; echo $x
/a/b