我有一个变量值“Cash_20200413_US_02.dat”,我想将其重命名为“Cash_20200413_US_*.dat”。
所以基本上我想要找到:a)字符串“_”的最后一次出现和b)字符串“。”然后将这两个字符串之间的值替换为“*”
输入=“Cash_20200413_US_02.dat”
输出=“Cash_20200413_US_*.dat”
答案1
鉴于
Input="Cash_20200413_US_02.dat"
您可以使用以下命令获取到最后一个下划线(不包括)的子字符串:
echo "${Input%_*}"
并从最后一个点(排除)开始的子字符串:
echo "${Input/*.}"
将两者结合起来,并在中间加上请求的字符串:
Output="${Input%_*}_*.${Input/*.}"