删除除文件名扩展外的所有内容



假设我有一个字符串:

x=file.tar.sh

我知道如何删除除最后一个n-character以外的所有内容。这样(除了最后3个字符以外的所有内容:

${x: -3}

这对于具有不同后缀长度的文件不起作用。(len .tar!= len .sh)

我会通过删除所有内容直到最后一个点来解决这个问题。我已经尝试过:

${x##.}

这删除了最长的匹配,直到"。但是它以某种方式只是返回完整的字符串而无需删除任何内容吗?

尝试以下:

x=file.tar.sh
echo ${x##*.}

这将打印sh

如果要获得tar.sh,则:

echo ${x#*.}

此处 *在发生.

之前匹配任何一组字符

相关内容

  • 没有找到相关文章

最新更新