gpt4 book ai didi

sed - 如何在sed中替换字符串中最右边的字符?

转载 作者:行者123 更新时间:2023-12-02 08:48:48 25 4
gpt4 key购买 nike

我有一个像这样的目录字符串:

build_result/09_abc_WQVGA_FullTouch_15M.xyz

我想在最后一个 . 字符(以 _ 为前缀)之前插入文件的日期,所以我像这样使用 sed:

newname=`echo $filename | sed -n 's/\./\_'"$date"'\./p'`

$date在sed命令之前已经计算过了,结果是:

build_result/09_abc_WQVGA_FullTouch_15M_20120420.xyz

但有时会有一些文件名如:

build_result/09_abc_WQVGA_FullTouch_1.5M.xyz

在最后一个之前添加一个额外的 .,sed 将在第一个 . 之前插入 $date。如何让它只在最后一个 . 之前插入 $date

最佳答案

其他人已经涵盖了 sed 所以我建议使用您的 shell 的功能来做到这一点。
更少的开销(产生子壳......)!

$ file='build_result/09_abc_WQVGA_FullTouch_15M.xyz'
$ newfile="${file%.*}_$date.${file##*.}"
$ echo "$newfile"
build_result/09_abc_WQVGA_FullTouch_15M_20120420.xyz

使用 sed 我会这样做:

sed "s/\(.*[^.]\)\./\1_$date./g"

关于sed - 如何在sed中替换字符串中最右边的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com