Проверка сценария оболочки, если файл существует?

Можно использовать команду vorbiscomment для чтения измените и удалите метаданные по файлу Ogg Vorbis. Это - часть vorbis-tools пакет.

Установка

$ sudo yum install vorbis-tools

чтение

Можно использовать -l переключитесь для списка тегов с их соответствующими значениями как так:

$ vorbiscomment -l antonio_diabelli__rondino.ogg 
title=Antonio Diabelli / Rondino
artist=Various Artists
genre=Classical
date=1998
album=Growing Minds With Music - Classical Music
tracknumber=07

Изменение

Можно изменить теги путем выписывания им в файл, редактирования их и затем повторного применения их назад к .ogg файлу. Это показывают в методе № 1. Можно стать необычными и сделать это как один лайнер как в методе № 2.

метод № 1:

$ vorbiscomment -l antonio_diabelli__rondino.ogg
title=Antonio Diabelli / Rondino
artist=2LiveCrew
genre=Classical
date=1998
album=Growing Minds With Music - Classical Music
tracknumber=07

$ vorbiscomment -l antonio_diabelli__rondino.ogg > comment.txt
...edit the file...

$ vorbiscomment -w -c     $ vorbiscomment -l antonio_diabelli__rondino.ogg 
title=Antonio Diabelli / Rondino
artist=2LiveCrew
genre=Classical
date=1998
album=Growing Minds With Music - Classical Music
tracknumber=07comment.txt antonio_diabelli__rondino.ogg

метод № 2:

$ vorbiscomment -l antonio_diabelli__rondino.ogg  | \
    sed 's/Various Artists/2LiveCrew/' | \
    vorbiscomment -w antonio_diabelli__rondino.ogg 

после:

$ vorbiscomment -l antonio_diabelli__rondino.ogg 
title=Antonio Diabelli / Rondino
artist=2LiveCrew
genre=Classical
date=1998
album=Growing Minds With Music - Classical Music
tracknumber=07

удаление

Удалить все включая тег художника:

$ vorbiscomment -w -t "artist=" antonio_diabelli__rondino1.ogg

после:

$ vorbiscomment -l antonio_diabelli__rondino.ogg 
artist=

Нет способа избавиться от последнего бита. Необходимо обеспечить vorbiscomment по крайней мере одно имя тега без значения, иначе Вы получите следующую ошибку:

$ echo "" | vorbiscomment -w antonio_diabelli__rondino.ogg 
bad comment: ""
3
30.11.2014, 22:09
1 ответ

Вы могли использовать хорошее условное выполнение удара, чтобы видеть, существует ли файл или нет...

[ -f tmp1.txt ] && echo "Found" || echo "Not found"

, Кроме того, вы могли использовать команду находки с - более новый флаг...

find /some/dir -type f -newer $startdate -not -newer $enddate
7
27.01.2020, 21:12

Теги

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