cmd如何重命名序列号和dirname

时间:2017-10-15 01:11:20

标签: regex linux awk rename

goodevening,我们不是英语 我们尝试linux cmd重命名许多文件或目录 exsample
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]"是正则表达式。

1 个答案:

答案 0 :(得分:0)

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

#!/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