LINUX.ORG.RU

История изменений

Исправление proud_anon, (текущая версия) :

А как выполнить полученный результат одновременно вместе с командой? пробовал убрать echo, но возникла ошибка:

Это потому, что find вызывает basename и, таким образом, awk работает с именами файлов, а не с путями.

Надо так:

awk -F_ -v OFS="_" '{orig = $0; sub(/\.[^.]*$/,"",$3);$3=gensub(/-([^-]*$)/,"_\\1","g",$3);gsub(/\./,"-",$3);cmd = sprintf("mv /opt/media/rec/%s /opt/media/rec/%s_%s_%s_%s", orig, $3, $1, $2, $4); system(cmd)}'

Или так же сделать, как ты сделал (просто убрать echo), но сначала зайти в /opt/media/rec:

cd /opt/media/rec

Исправление proud_anon, :

А как выполнить полученный результат одновременно вместе с командой? пробовал убрать echo, но возникла ошибка:

Это потому, что find вызывает basename и, таким образом, awk работает с именами файлов, а не с путями.

Надо так:

awk -F_ -v OFS="_" '{orig = $0; sub(/\.[^.]*$/,"",$3);$3=gensub(/-([^-]*$)/,"_\\1","g",$3);gsub(/\./,"-",$3);cmd = sprintf("mv /opt/media/rec/%s /opt/media/rec/%s_%s_%s_%s", orig, $3, $1, $2, $4); system(cmd)}'

Или так же сделать, как ты сделал (просто убрать echo), но сначала зайти в /opt//media/rec:

cd /opt/media/rec

Исправление proud_anon, :

А как выполнить полученный результат одновременно вместе с командой? пробовал убрать echo, но возникла ошибка:

Это потому, что find вызывает basename и, таким образом, awk работает с именами файлов, а не с путями.

Надо так:

awk -F_ -v OFS="_" '{orig = $0; sub(/\.[^.]*$/,"",$3);$3=gensub(/-([^-]*$)/,"_\\1","g",$3);gsub(/\./,"-",$3);cmd = sprintf("mv /opt/media/rec/%s /opt/media/rec/%s_%s_%s_%s", orig, $3, $1, $2, $4); system(cmd)}'

Или так же сделать, как ты сделал (просто убрать echo), но сначала сделать "cd /opt/media/rec".

Исходная версия proud_anon, :

А как выполнить полученный результат одновременно вместе с командой? пробовал убрать echo, но возникла ошибка:

Это потому, что find вызывает basename и, таким образом, awk работает с именами файлов.

Надо так:

awk -F_ -v OFS="_" '{orig = $0; sub(/\.[^.]*$/,"",$3);$3=gensub(/-([^-]*$)/,"_\\1","g",$3);gsub(/\./,"-",$3);cmd = sprintf("mv /opt/media/rec/%s /opt/media/rec/%s_%s_%s_%s", orig, $3, $1, $2, $4); system(cmd)}'