【问题标题】:how cmd rename sequence number and dirnamecmd如何重命名序列号和目录名
【发布时间】:2018-03-26 19:44:33
【问题描述】:

晚安,我们的母语不是英语。
我们尝试使用 linux cmd 重命名许多文件或目录。
示例
time\1.ext test\newname.ext read\test.ext what\abc.ext

希望听到结果。
time\01-time.ext test\02-test.ext read\03-read.ext what\04-what.ext
是序列号和目录名。

我们尝试了其他问题网站的帖子。
但没有结果。
find "$PWD" -name "[0-9][0-9].md" -exec bash -c ' DIR=$( dirname "{}" ); FILE=$( firename "{}" ); echo "{}" "$DIR"/"-${DIR##*/}".md ' \;
ls *.* | awk '{ printf "mv %s dirname-%03d.md\n", $0, NR }'

这个文件重命名如何使用cmd?
我们希望结果是未命名的 dile 和目录。
png,txt,md,许多分机。
我们试过 cmd "." "[0-9][0-9]" 是正则表达式。

【问题讨论】:

  • 如果文件超过 100 个,应该使用什么新名称?会不会变成01-time.ext02-time.pdf
  • 好吧,如果重命名的文件数超过 100 个。在这种情况下,我们使用来自[01][001]。并在目录中混合 extfiles。你的权利,我们使用01-time.ext and 02-time.pdf and 03-time.png等。

标签: regex linux awk rename


【解决方案1】:

我不知道您是否需要使用awk 或任何其他特定命令。这是循环文件并重命名它们的一种相当简单的方法。当您确信会发生正确的重命名时,请从 mv 命令中删除 echo

#!/bin/bash
count=1

for fn in $(find . -name "*.ext" -o -name "*.pdf" -o -name "*.png")
do
    filename=$(basename $fn)
    extension="${filename##*.}"
    dn=$(dirname $fn)
    dp=$(basename $dn)
    thiscount=$(printf "%03d" $count)

    echo mv $fn $dn/$thiscount-$dp.$extension

    count=$((count+1))
done

【讨论】:

  • 谢谢,我们尝试重命名测试并在 kde dolphin 中创建服务菜单。我们希望重命名成功。所以,对不起,解决是在成功重命名后。稍后。
  • 抱歉,我们更改了控制文件方法。但谢谢你的帮助。
猜你喜欢
  • 2011-05-28
  • 2019-02-25
  • 2019-06-24
  • 2019-01-23
  • 2013-12-05
  • 2012-02-03
  • 2022-11-14
  • 2011-07-15
  • 1970-01-01
相关资源
最近更新 更多