Как пакетно переименовать файл, используя другой файл с таким же префиксом uniqe? - PullRequest
0 голосов
/ 21 января 2020

Проблема

Учитывая множество файлов с выделенным уникальным префиксом.

Я бы хотел заменить каждое из них на имя файла соответствующего файла, который начинается с того же уникального префикса.

Пример

ввод:

- 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 -различие

1 Ответ

0 голосов
/ 21 января 2020

Предполагая, что все до подчеркивания _ считается 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

Это не пересекает каталоги, но работает только с текущим каталогом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...