Как добавить результаты 'uniq -c' и постоянно перезаписывать их в цикле?

Музыкальные файлы Apple не шифровались уже десять лет! Так что, если вы не купили их десять лет назад, они не зашифрованы, ваш MP3-плеер просто не поддерживает формат (AAC ).

Вы можете узнать по расширению:

  • m4p -> зашифровано
  • m4a -> стандартный AAC или Apple Lossless

Вы можете преобразовать AAC в MP3, однако вы получите небольшую потерю качества.

Вы можете использоватьffmpeg:

ffmpeg -i inputfile.m4a -c:a libmp3lame -ac 2 -b:a 320k outputfile.mp3

Для удаления DRM :Вы можете просто записать файлы, обремененные DRM -, на компакт-диск и скопировать компакт-диск, чтобы удалить DRM. Прожиг -рип — самый простой метод, однако вы теряете качество.

Есть несколько других способов удалить DRM, например, с помощью Audacity. Точные шаги можно найти в Google.

Не знаю, как это возможно, но есть и коммерческие программные решения, которые в лучшем случае делают именно то, что делает Audacity. Audacity — это бесплатное программное обеспечение под лицензией GPL.

1
14.01.2020, 02:54
1 ответ

Этот подход использует awkдля суммирования временного файла tallytmpи текущего подсчета, называемого просто tally. Я sortпросматриваю два итоговых файла вместе на втором поле(-k2)

Для начала нужен пустой файл tally, поэтому touch tally, затем для каждой итерации:

uniq -c file > tallytmp
sort -k2 tally tallytmp \
  |awk '{
          if($2==prev){
            tot+=$1
          }else{
            print tot,prev;
            tot=$1;pc=$1;prev=$2
          }
        }END{
          print tot,prev
        }' > tallyresult
cp tallyresult tally

(Продолжайте, поместите сценарий awkв одну строку.)

По логике я должен иметь возможность перенаправить конвейер sort|awkнепосредственно на tally, но sortвсе еще использует его, поэтому он забивает его; следовательно, второй временный файл tallyresultперед его копированием поверх нашего файла результатов, tally.

Вывод этого на двух предоставленных итерациях на самом деле:

[blank line]
4 Cat
4 Dog
2 Goat
6 Horse

Порядок перепутан из-за порядка поля #2, но он работает правильно. Я смог запустить несколько итераций, используя это.

1
27.01.2020, 23:55

Теги

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