Переименование файлов с номерами в соответствующие 1-n числа в порядке

Таким образом, у меня есть куча файлов в папке, где ведущее число представляет порядок файла, но они не являются обычным 1-n, например:

2-file.txt 4-file.txt 7-file.txt 12-file.txt 

и я хочу иметь их в последовательном порядке от 1 до «количества файлов», сохраняя числовой порядок, поэтому:

 1-file.txt 2-file.txt 3-file.txt 4-file.txt 

где 1-file.txt является предыдущим 2-file.txt, 2-file.txt является предыдущим 4-file.txt и так далее

One Solution collect form web for “Переименование файлов с номерами в соответствующие 1-n числа в порядке”

Этот скрипт должен выполнить эту работу за вас. Обязательно переключите его с DEBUG на LIVE:

 #!/bin/sh list=`ls *-file.txt | sort -n` i=1 for f in $list do #DEBUG MODE echo "mv $f $i-file.txt" #LIVE MODE #mv $f $i-file.txt i=$(($i + 1)) done 

И вот версия без жесткого кодирования:

 #!/bin/sh if [ -z $1 ] then echo " You need to pass a prefix. For example: ${0##*/} -file.txt " exit 1 fi list=`ls *${1} | sort -n` i=1 for f in $list do #DEBUG MODE echo "mv $f ${i}${1}" #LIVE MODE #mv $f ${i}${1} i=$(($i + 1)) done 
  • Как я могу выполнить двоичный поиск текстового файла для определенной строки символов?
  • Как проанализировать файл для извлечения 3 цифр, хранящихся в «групповом номере»,
  • Добавление строки, содержащей escape-символ с sed
  • Замените все вхождения \ except \ N
  • Заменить соответствия многострочной строкой с помощью sed
  • Объедините два файла по очереди с символом тройного канала разделителя «|||»
  • Получить текст между шаблоном начала и конечным шаблоном на основе шаблона между шаблоном начала и конца
  • Возвращайте только часть строки после соответствующего шаблона
  • Сравнение 3 строк и 2 строк в BASH
  • Журналы ошибок потока
  • Дублируйте и замените шаблон в текстовом файле
  • Linux и Unix - лучшая ОС в мире.