Пакетное переименование файлов из Терминала

Может быть, вы можете замедлить чтение файла, заставив тем самым более быстрого потребителя ждать?

while read LINE; do
   echo "$LINE" | tee /dev/stderr | ./consumer1.py ; ) 2>&1 | ./consumer2.py
   sleep 0.01
done < "file.txt"

Однако в некоторых системах режим сна менее 1 секунды не подходит.

1
10.01.2018, 11:34
1 ответ

Использование утилитыperlrename(, а не команды renameиз util-linux, которая имеет совершенно другие и несовместимые параметры строки команды -):

rename -n -v 's/\$+//g' *.mp3*

Это приведет к удалению всех$символов из в любом месте в именах файлов.

Если вы хотите удалить $символы, только если они находятся в конце имен файлов:

rename -n -v 's/\$+$//' *.mp3*

Кстати, приведенные выше команды используют параметр renameдля -nв качестве пробного прогона, чтобы показать вам, что будет делать renameбез фактического переименования чего-либо. Когда вы уверены, что он делает именно то, что вы хотите, без каких-либо непредвиденных последствий, удалите -nиз командной строки. При желании также удалите параметр-v(verbose ).


Утилита переименования perlнаходится в пакете renameв Debian и производных дистрибутивах. Этот пакет содержит модуль File ::Rename CPAN и утилиту rename.

Ранние версии пакета perlв Debian включали старую версию renameс некоторыми заметными ошибками. Если у вас установлена ​​эта версия, вам следует как можно скорее установить пакет rename.

Этот perl -на основе renameтакже иногда устанавливается как file-renameили prename. prenameобычно является более старой версией с ошибками.

0
27.01.2020, 23:18

Теги

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