相关疑难解决方法(0)

更改文件名后缀(使用sed?)

我想从文件中更改文件名后缀(使用bash脚本),但有时会有一个句点和一些带有两个句点的文件.

现在我用这个:

new_file=`echo ${file} | sed 's/\(.*\.log.*\)'${suf}'/\1.'${num}'/'`
Run Code Online (Sandbox Code Playgroud)

其中'new_file'是新文件名,'file'是原始文件名,'$ {suf}'是文件的后缀,$ {num}是新号码.

因此some.log必须成为some.log.1,some.log.1必须成为some.log.2.使用我的代码some.log成为some.log.1,但some.log.1仍然是some.log.1.

我希望我足够清楚.我很感激任何建议(甚至不使用sed).

更新:

@paxdiablo.我认为测试出了问题.

现在我用这段代码作为测试;

#!/usr/bin/bash

        shft() {
            for suff in {6..1} ; do
                if [[ -f "$1.${suff}" ]] ; then
                    ((nxt = suff + 1))
                    echo Moving "$1.${suff}" to "$1.${nxt}"
                    mv -f "$1.${suff}" "$1.${nxt}"
                fi
            done
            echo Moving "$1" to "$1.1"
            mv -f "$1" "$1.1"
        }

        clear

        folder=~/logs/*.log

        for i …
Run Code Online (Sandbox Code Playgroud)

shell filenames rename sed

4
推荐指数
1
解决办法
2527
查看次数

标签 统计

filenames ×1

rename ×1

sed ×1

shell ×1