Называть тысячи файлов одновременно со специфическим главным файлом

Поскольку видят на фотографии:

(introducir la descripción del enlace aquí)

У меня есть тысячи и тысячи файлов, у которых есть формат: имя - 10números, например zapateria-1092328745 или 1-2-1923412345. Всегда - имя файла больше 10 отдельных чисел: какая-то форма была бы, чтобы лишать его этих 10 чисел во все файлы одновременно?

Большое спасибо.

3
задан 03.03.2017, 01:17
2 ответа

Возможное решение в bash:

$ touch {for,bar,baz}-1234567890.jpg
$ ls -ltr *.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 for-1234567890.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 bar-1234567890.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 baz-1234567890.jpg
$ for file in *.jpg; do mv $file $(echo $file | sed -e 's/[0-9]\{10\}.jpg$/.jpg/' ) ;done
$ ls -ltr *.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 for-.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 bar-.jpg
-rw-r--r-- 1 guest 1049089 0 Sep 11 20:01 baz-.jpg

ВАЖНО Если будет столкновение имен без чисел, он оставит только один из файлов. Использовать осторожно.

Безопасный выбор состоит в том, чтобы использовать выбор --backup=TYPE команды mv. Где TYPE это один из следующих.

  • none, off никогда он не делает backup (даже если встретился выбор - backup)
  • numbered, t он делает backups числовые
  • existing, nil числовой, если backup существует, если не простой
  • простой, never всегда делать backup просто

Выбор backup добавляет суффикс к файлу, в случае когда существует.

С этим выбором, например, zapateria.jpg происходи в zapateria.jpg~ ó zapateria.jpg~1~.

Он это предотвратит по крайней мере терять повторенные файлы, если они много, он был бы должен revevaluarse способ называть файлы в массе.

Пример с numbered backup:

for file in *.jpg; do mv - backup=numbered $file $ (я бросаю $file | будьте - и 's / [0-9] {10} .jpg$ / .jpg /'); подарите

Если бы ты захотел переместить также среднюю схему, которая отделяет имя числа, просто изменись:

's/[0-9]\{10\}.jpg$/.jpg/' из-за 's/-[0-9]\{10\}.jpg$/.jpg/'.

Ты снабжаешь ссылками на английском:

Может оказываться полезным этот руководитель команды будьте.

ОБНОВЛЕНИЕ

Если ты находишься в Windows атмосфере и хочешь использовать bash, выборы, которые я знаю и использовал в каком-то моменте:

2
ответ дан 24.11.2019, 13:25
  • 1
    Мне кажется, что он не применяется, потому что он использует Windows, – Santi92 12.09.2016, 02:40
  • 2
    Asum и # 237; правильная маркировка вопроса (он говорит bash) возможно плохая м и # 237; в. Поэтому actualic и # 233; и indiqu и # 233; если он хочет использовать bash в Windows, для которого он хочет решить (хорошо из-за и #233; l), я даю ему выборы. – El Asiduo 12.09.2016, 02:46
  • 3
    привет Усердный, я пробую использовать bash в windows, чтобы использовать пример, что ты поместил, большое спасибо из-за твоей помощи, посмотрим это мне с собой (ошибитесь, он не был bash, он bat) – dev 12.09.2016, 02:57
  • 4
    @dev важно, ac и # 225; то, что показывает Toledano столкновений, важно. С mv файлы топчутся. – El Asiduo 12.09.2016, 03:01
  • 5
    тогда пример не будет служить? – dev 12.09.2016, 03:02

Только что написал один pequeГ±o рукописный шрифт, НО В ЯЗЫКЕ R ( https://www.r-project.org / ).

#borre las primeras lineas pues no es necesario. solo lo use para generar los nombres.
setwd("/home/luis/Code/R/Imagenes/")
dir()

lista <- list.files(pattern = "*.jpg")

caracteres <- nchar(lista) - 15
#15 = 3 de formato, 1 del punto, 10 de los numeros, 1 del gion

nom <- substr(lista,1,caracteres)

nombre <- paste0(nom,".jpg")


file.rename(lista,nombre)

Относительно Процесса ejecuciГіn возможно не estГ©s приученный для языка asГ - я, который оживил, один записывать pequeГ±o видео, в котором я объясняю cГіmo выполнять это. Глаз, который для этого ты должен считать установленным R (что очень простой) равно как RStudio ( https://www.rstudio.com / ).

здесь соединение видео: https://www.dropbox.com/s/p9mmny6d0qxhfxr/rename_file.mp4? dl=0

PD: Если ты работаешь с Rstudio, ты можешь использовать клавиши control+shift+h, чтобы заменять ее lГ-nea, что инициализируется с setwd ().

0
ответ дан 24.11.2019, 13:25