如何使用另一个具有相同uniqe前缀的文件批量重命名文件?

问题描述 投票:0回答:1

问题

给出大量带有专用唯一前缀的文件。

我想将它们的每个文件名替换为以相同的唯一前缀开头的相关文件的文件名。

示例

输入:

- UUIDa.txt
- UUIDa_apple.md

- UUIDb.txt
- UUIDb_orange.md

- UUIDc.txt
- UUIDc_banana.md

输出:

- UUIDa_apple.txt
- UUIDa_apple.md

- UUIDb_orange.txt
- UUIDb_orange.md

- UUIDc_banana.txt
- UUIDc_banana.md
- UUIDa.txt
- UUIDa_apple.md

prefix -> UUIDa
add "_apple" after UUIDa -> UUIDa_apple

git-diff

regex shell terminal rename batch-rename
1个回答
0
投票

假设直到下划线_的所有内容都被视为UUID,这有效:

#!/bin/bash

for file in *.md; do
    echo $file;
    EXT="${file##*.}"
    FILENAME="${file%.*}"
    UUID="${file%_*}"
    if [ -f "${UUID}.txt" ]; then
        mv "${UUID}.txt" "${FILENAME}.txt"
        echo "renamed ${UUID}.txt to ${FILENAME}.txt"
    fi
done

这不会遍历目录,但仅适用于当前目录。

© www.soinside.com 2019 - 2024. All rights reserved.