Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux awk命令未输出(awk:错误无法打开源文件)_Linux_Bash_Awk - Fatal编程技术网

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

Linux awk命令未输出(awk:错误无法打开源文件),linux,bash,awk,Linux,Bash,Awk,嘿,伙计们,我正在尝试删除字符串(参数)中最后一个/之后的所有内容。我遇到了一些我不太清楚的问题。。对我犯的任何愚蠢的错误提前表示歉意 myvar1 = $(echo $1 | awk -f "/" '(print $NF)') 样本输入: /根/桌面/测试 样本输出: 试验 您应该使用-F,而不是-F,但还有其他问题。将整行更改为: myvar1=$(echo "$1" | awk -F'/' '{print $NF}') 如果您真的想使用echo、awk和管道来实现这一点,而不仅仅是b

嘿,伙计们,我正在尝试删除字符串(参数)中最后一个
/
之后的所有内容。我遇到了一些我不太清楚的问题。。对我犯的任何愚蠢的错误提前表示歉意

 myvar1 = $(echo $1 | awk -f "/" '(print $NF)')
样本输入:

/根/桌面/测试

样本输出:

试验


您应该使用
-F
,而不是
-F
,但还有其他问题。将整行更改为:

myvar1=$(echo "$1" | awk -F'/' '{print $NF}')
如果您真的想使用echo、awk和管道来实现这一点,而不仅仅是bash内置

此外,上面选择最后一个“/”后面的内容,而不是删除它后面的所有内容,因此不清楚您真正想要什么。如果您无法从以下内容中理解,请发布一些示例输入和预期输出:

$ x="a/b/c/d"; echo "${x##*/}"
d
$ x="a/b/c/d"; echo "${x%/*}"
a/b/c

您应该使用
-F
,而不是
-F
,但还有其他问题。将整行更改为:

myvar1=$(echo "$1" | awk -F'/' '{print $NF}')
如果您真的想使用echo、awk和管道来实现这一点,而不仅仅是bash内置

此外,上面选择最后一个“/”后面的内容,而不是删除它后面的所有内容,因此不清楚您真正想要什么。如果您无法从以下内容中理解,请发布一些示例输入和预期输出:

$ x="a/b/c/d"; echo "${x##*/}"
d
$ x="a/b/c/d"; echo "${x%/*}"
a/b/c
另一个解决方案是:

$ x=`basename /a/b/file`; echo $x
file
$ x=`dirname /a/b/file` ; echo $x
/a/b
另一个解决方案是:

$ x=`basename /a/b/file`; echo $x
file
$ x=`dirname /a/b/file` ; echo $x
/a/b

感谢您的回复,我正在获取myvar1:未找到命令。。那是因为引用错误吗?idk,我发布的命令不会产生该错误消息,因此我不知道您执行的是什么命令,因此很难猜测该命令中的哪些命令可能会产生该错误消息,但如果您像您在问题中那样在
=
周围留有空格,则会导致某种错误,所以可能就是这样?谢谢您的回答,我正在获取myvar1:未找到命令。。那是因为引用错误吗?idk,我发布的命令不会产生该错误消息,因此我不知道您执行了什么命令,因此很难猜测该命令中的哪些命令可能会产生该错误消息,但如果您像您在问题中那样在
=
周围留有空格,则会导致某种错误,所以可能就是这样?