awk命令没有输出(awk:错误无法打开源文件)

时间:2014-11-26 23:28:44

标签: linux bash awk

嘿伙计们,我正在尝试删除字符串中最后一个/之后的所有内容(参数)。我遇到了一些我无法弄明白的问题..对于我犯过的任何愚蠢的错误提前抱歉

 myvar1 = $(echo $1 | awk -f "/" '(print $NF)')

示例输入:

  

./根/桌面/测试

示例输出:

  

测试

2 个答案:

答案 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