【发布时间】:2021-09-23 21:36:02
【问题描述】:
我正在尝试使用 sed 使用正则表达式处理特定字符的更改。
本质上,我正在运行一个 bash 脚本,该脚本正在重命名具有特定字符串的文件,并且我需要使该字符串基本保持不变。这是一个示例文件名:
_FILE20210714.023.jpg
所以我正在尝试创建一个变量nfile 用于mv 命令并将其转换为以下内容:
_FILE20210714.123.jpg
请记住,我只想将最后的 0 更改为 1。
我想出了以下正则表达式来获取该特定字符,但我不知道如何用 sed 替换:
_FILE\d{8}\.\K0
nfile=$(echo ${file}| sed -e 's/_FILE\d{8}\.\K0/_FILE\d{8}\.\K1/')
当我回显nfile 变量时,我得到了原始名称,但我不确定如何解决这个问题。
echo ${file}
echo ${nfile}
/home/user/_FILE20210714.023.jpg
/home/user/_FILE20210714.023.jpg
一旦我可以将023 替换为123 就非常重要了,唯一的问题是我有多个以.034.jpg 结尾的文件,所以我不能直接匹配它。
【问题讨论】: