Переименуйте имя файла, используя shell предпочитают команду sed cut и awk - PullRequest
0 голосов
/ 19 мая 2019

Я хочу переименовать имя файла, как указано ниже

Если имя файла - abc_test_tt_3447.txt, я хочу abc_tt_3447.txt

Если имя файла - abc_test_ff_tt_3447.txt, я хочу abc_tt_3447.txt

Если я хочу заменить test и test_ff пустым

Я пытался с помощью команды sed

1 Ответ

0 голосов
/ 19 мая 2019

с bash:

shopt -s extglob
for file in *_test*; do
    echo mv -- "$file" "${file//_test?(_ff)/}""
done

или:

for file in *_test*; do
    [[ $file =~ (.*)_test(_ff)?(.*) ]] &&
    echo mv -- "$file" "${BASH_REMATCH[1]}${BASH_REMATCH[3]}"
done

Удалите echo после завершения тестирования.

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