Переименовать несколько файлов в SSH - PullRequest
0 голосов
/ 03 октября 2019

У меня есть сервер Centos.

В SSH я скачал несколько файлов mp4 в формате txt с помощью этой команды:

wget -i urls.txt

Теперь у меня есть список файлов mp4 в каталоге,Проблема в том, что файлы mp4 имеют имена:

65464.mp4?md5=sdokj7SRuM-OKatFmdCJJg&expires=1570102642
45421.mp4?md5=sdokj56SRuM-OKatFmdCJJg&expires=157010277842
etc...

Как мне удалить? и все после во всех файлах в этом каталоге (например, ?md5=sdokj7SRuM-OKatFmdCJJg&expires=1570102642), поэтому имя файла изменится на:

65464.mp4
45421.mp4
etc...

Спасибо.

1 Ответ

1 голос
/ 03 октября 2019

Решение будет зависеть от того, какая оболочка у вашей системы CentOS запущена или доступна. Если вы используете bash, вы можете сделать что-то простое:

for x in * ; do
    mv $x ${x%%\?*}
done

Это использует bash манипулирование строковыми переменными методы.

Другой возможныйрешение, все еще зависит от особенностей оболочки:

for x in * ; do
    mv $x $(echo $x | sed "s/\?.*//")
done
...