История изменений
Исправление 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)}'