Discussion:
чего то не сорображу как?
(слишком старое сообщение для ответа)
Alexander Polozov
2020-10-25 14:48:10 UTC
Permalink
Привет, All!

Есть простенький самописный скрипт по переименовыванию тыреных из тырнета мп3
по тегам:
=== Begin rentag2filename ===
#!/bin/bash
for fn1 in *mp3 ;
do
title=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Title | cut -d: -f2 | sed
's/^[ \t]*//' )
artist=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Artist | cut -d: -f2 |
sed 's/^[ \t]*//' )
mv -i -T "$fn1" "$artist"\ -\ "$title".mp3
done
=== End rentag2filename ===
Хочется добавить добавить в конце год в скобках, как извлечь год из тегов
понятно, как добавить тоже, а вот как сделать проверку, что-бы при отсутсвии
оного тега вообще ничего не добавлялось как то не соображу и с наскоку не
нагуглил, есть у кого какие идеи?

Со всеми пожеланиями, Alexander Polozov

... Надо же думать, что понимать.
Evgeny Chevtaev
2020-10-25 17:04:54 UTC
Permalink
Hi Alexander!

Sunday October 25 2020 17:48, Alexander Polozov wrote to All:

AP> Есть простенький самописный скрипт по переименовыванию тыреных из
AP> тырнета мп3 по тегам:
AP> === Begin rentag2filename ===
AP> #!/bin/bash
AP> for fn1 in *mp3 ;
AP> do
AP> title=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Title | cut -d:
AP> -f2 | sed 's/^[ \t]*//' ) artist=$( mpg123 --long-tag -t "$fn1" 2>&1 |
AP> grep -a Artist | cut -d: -f2 | sed 's/^[ \t]*//' ) mv -i -T "$fn1"
AP> "$artist"\ -\ "$title".mp3 done
AP> === End rentag2filename ===
AP> Хочется добавить добавить в конце год в скобках, как извлечь год из
AP> тегов понятно, как добавить тоже, а вот как сделать проверку, что-бы
AP> при отсутсвии оного тега вообще ничего не добавлялось как то не
AP> соображу и с наскоку не нагуглил, есть у кого какие идеи?

if [ $year != "" ]
then
year=" ($year)"
fi

mv -i -T "$fn1" "$artist - $title$year".mp3

With best regards,
Evgeny
Alexander Polozov
2020-10-26 17:54:04 UTC
Permalink
Привет, Evgeny!


Ответ на сообщение Evgeny Chevtaev (2:5010/275) к Alexander Polozov,
написанное 25 окт 20 в 20:04:


EC> if [ $year != "" ]
EC> then
EC> year=" ($year)"
EC> fi
Сработало, сенксь, единственное при пустом значении года баш ругался на строку
с !=, но помогло изменение условия на if [ -n "$year" ]
Теперь скриптик выглядит так (вдруг кому пригодится):
=== Begin Fake Clipboard ===
#!/bin/bash
for fn1 in *mp3 ;
do
title=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Title | cut -d: -f2 | sed
's/^[ \t]*//' )
artist=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Artist | cut -d: -f2 |
sed 's/^[ \t]*//' )
year=$( mpg123 --long-tag -t "$fn1" 2>&1 | grep -a Year | cut -d: -f2 | sed
's/^[ \t]*//' )
if [ -n "$year" ]
then
year=" ($year)"
fi

mv -i -T "$fn1" "$artist"\ -\ "$title$year".mp3
=== End Fake Clipboard ===

Со всеми пожеланиями, Alexander Polozov

... Весь мир сейчас идет наоборот.
Sergey Zabolotny
2021-07-17 15:26:02 UTC
Permalink
Hello *Alexander.*

Monday 26 October 2020 20:54, Alexander Polozov wrote to Evgeny Chevtaev:

EC>> if [ $year != "" ]
EC>> then
EC>> year=" ($year)"
EC>> fi
AP> Сработало, сенксь, единственное при пустом значении года баш ругался
AP> на строку с !=, но помогло изменение условия на if [ -n "$year"
ругался потому, что надо было писать if [ "$year" != "" ]
а вообще:
~$ year="2021"; echo "prefix-${year:+($year)-}postfix"
prefix-(2021)-postfix
~$ year=""; echo "prefix-${year:+($year)-}postfix"
prefix-postfix
~$
и никакие ифы не нужны.

зыЖ ничего страшного, что почти год прошел? :-)
Loading...