Наушники с микрофоном

Для устранения неполадок скрипта попробуйте заменить mv на echo. Вы увидите, что ваша переменная ${num} содержит полное имя файла, например. [F8]. Следовательно, ваш сценарий по существу пытается запустить

mv ./2.pdb.ostat.pdb.ostat ./2.pdb.ostat.ostat

Вместо этого вы должны сначала усечь имя файла только до номера. например,

for filename in ./*; do num="$(echo "${filename}" | grep -o '^./[0-9]*')"; echo "${num}.pdb.ostat" "${num}.ostat"; done

После подтверждения синтаксиса все в порядке, вы можете изменить echo на mv и фактически переместить файлы. т.е.

for filename in ./*; do num="$(echo "${filename}" | grep -o '^./[0-9]*')"; mv "${num}.pdb.ostat" "${num}.ostat"; done

Тем не менее, самый простой способ - использовать (perl) rename.

rename 's/pdb.//' *.pdb.ostat –

Подробнее см. man rename. [ ! d6]

0
задан 15 December 2017 в 06:28

0 ответов

Другие вопросы по тегам:

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