Как переформатировать имена каталогов?

Вы можете сделать это, используя xargs с параметром --max-args (или более коротким псевдонимом -n):

ls --quoting-style=c -1 lib/*.jar | xargs --max-args 1 базовое имя ls --quoting-style=c -1 lib/*.jar | xargs -n 1 базовое имя

Обратите внимание, что мы используем --quoting-style=c, чтобы убедиться, что пробелы в именах файлов не испортят xargs.

0
17.11.2016, 12:51
2 ответа

try

for i in geom*
do
      new=$(printf "geom%07d" "${i##geom}") 
      echo  "$i" "$new"
 done

where

  • ##geom конструкция удалит geom из var.
  • replace echo by mv if satisfied
6
28.01.2020, 02:13

Это не рекомендуемое решение, но оно работает. Я предлагаю использовать его только в вышеупомянутом конкретном случае. Не рекомендуется перебирать результаты ls. Если у вас другие имена папок, или вы хотите использовать его в более общей ситуации, то вам следует найти другое решение.

for i in geom*; do 
  nr=$(echo $i | cut -d'm' -f2); 
  #printf "geom%07d" "$nr"; 
  mv "${i}" "$(printf "geom%07d" "$nr")"
done
3
28.01.2020, 02:13

Теги

Похожие вопросы