Вы можете сделать это, используя 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.
try
for i in geom*
do
new=$(printf "geom%07d" "${i##geom}")
echo "$i" "$new"
done
where
##geom
конструкция удалит geom из var. echo
by mv
if satisfiedЭто не рекомендуемое решение, но оно работает. Я предлагаю использовать его только в вышеупомянутом конкретном случае. Не рекомендуется перебирать результаты ls
. Если у вас другие имена папок, или вы хотите использовать его в более общей ситуации, то вам следует найти другое решение.
for i in geom*; do
nr=$(echo $i | cut -d'm' -f2);
#printf "geom%07d" "$nr";
mv "${i}" "$(printf "geom%07d" "$nr")"
done