之前匹配任何一组字符
假设我有一个字符串:
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#*.}
此处 *
在发生.