Как добавить числовой порядок имен файлов Zsh / AWK / …?

Я хотел бы добавить форму заказа 1-777 по заказам. Вы можете прокручивать его и увеличивать переменную в Bash. Тем не менее, я хотел бы сделать это с Zsh и / или Awk. Приведем пример. Имена файлов

IMG_20161215_081850.jpg IMG_20161215_081851.jpg IMG_20161215_090559.jpg IMG_20161215_090601.jpg IMG_20161215_091308.jpg 

Разыскивается

 1.IMG_20161215_081850.jpg 2.IMG_20161215_081851.jpg 3.IMG_20161215_090559.jpg 4.IMG_20161215_090601.jpg 5.IMG_20161215_091308.jpg 

ОС: Debian 8.5

 ls *.jpg | nl -s. 

nl добавит номера строк; -s. указывает a . как разделитель между числом и данными (в данном случае именами файлов). Если вы хотите удалить ведущие пробелы из вывода, вы можете добавить это:

 ls *.jpg | nl -s. | sed 's/^ *//' 

sed затем удалит нулевое или большее количество пробелов с начала строки.

Если вы действительно хотите сделать это с помощью awk :

 ls *.jpg | awk '{ print NR"."$0 }' 

NR – внутренняя переменная, указывающая количество записей, прошедших анализ.

Чтобы внести постоянные изменения в имена файлов, сделайте следующее (Michael Vehrs)

 ls *.jpg | nl -s. | sed 's/ *\([0-9]\+\)\.\(.*\)/\2 \1\.\2/' | xargs -n 2 mv 

С помощью zsh используйте zmv для выполнения массового переименования. Сначала запустите autoload -U zmv (поместите это в свой .zshrc ), затем

 i=1 zmv 'IMG_*.jpg' '$((i++)).$f'