Linux Shell截取字符串的一个小技巧

750 阅读1分钟

分享一个Linux shell截取字符串的小技巧

假如有这样一个字符串:

> str="test.tar.gz"
  • ${str%.*} 从右边开始删除str字符串,直到遇到第一个 . (. 也会删除)
> echo ${str%.*}
> test.tar
  • ${str%%.*} 从右边开始删除str字符串,直到遇到最后一个 . (. 也会删除)
> echo ${str%%.*}
> test
  • ${str#*.} 从左边开始删除str字符串,直到遇到第一个 . (. 也会删除)
> echo ${str#*.}
> tar.gz
  • ${str##*.} 从左边开始删除str字符串,直到遇到最后一个 . (. 也会删除)
> echo ${str##*.}
> gz

注意 * 的位置哟

当然还有其他的方法, 比如说cut sed 之类的命令