переименовать отчество нескольких файлов с помощью bash

У вас есть какое-либо представление о том, ограничен ли процесс процессором или вводом-выводом? Если ему нужен только процессор, top - ваш друг. Если он ограничен вводом-выводом, проверьте vmstat -Sm 5, iotop -od5 и iostat -m 5. Попытайтесь выяснить, вызвана ли проблема медленной низкой производительностью устройства или есть что-то еще, работающее в худшей производительной системе.

Если вы не знаете, ограничен ли он ЦП или ВВОД-выводом, начните с top и посмотрите на значение ожидания системного ввода-вывода (wa) вверху. Если один или несколько ЦП ожидают ввода-вывода, значение ожидания ввода-вывода возрастет. Если у вас много простоев и низкое значение ожидания ввода-вывода, то ваш процесс ожидает каких-то событий синхронизации (возможно, какой-то блокировки локально или по сети).

0
11.08.2017, 09:23
2 ответа

С помощью команды Perlпереименовать :

rename 's/_dig_([^.]+)\.xy$/_cur_$1.mp3/' /opt/rec/*.xy
2
28.01.2020, 02:15

Вот решение bash.

for file in /path/to/*; do 
    nname="${file%%.*}.mp3"  # strip last part of file till first . seen
    echo mv "$file" "${nname//dig/cur}"  # replace 'dig' with 'cur'
done

С mmvвсе намного проще.

mmv '*_*_*.*' '#1_cur_#3.mp3'

Или с zmv:

zmv -w '*_*_*.*' '$1_cur_$3.mp3'
4
28.01.2020, 02:15

Теги

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