LINUX.ORG.RU

парсинг текста(bash)


0

0

Помогите, пожалуйста, при помощи скрипта на bash выдернуть из текста жанр(Ska), дату(1991) и для трека TRACK 01 информацию о TITLE и PERFORMER. Опыта в написании скриптов у меня мало, поэтому очень нужна помощь


REM GENRE Ska
REM DATE 1991
REM DISCID D00DA810
REM COMMENT "ExactAudioCopy v0.95b4"
PERFORMER "The Specials"
TITLE "Singles"
FILE "The Specials - Singles.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Gangsters"
    PERFORMER "The Specials"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Rudi, A Message To You"
    PERFORMER "The Specials"
    INDEX 00 02:47:74
    INDEX 01 02:48:27

anonymous

Лучше перлом, в CPAN на эту тему обязательно что-нибудь найдется.

e
()

eval `awk 'BEGIN { achtung=0 } /^[[:space:]]*REM[[:space:]]*GENRE/ { printf "GENRE=%s\n",$3 } /^[[:space:]]*REM[[:space:]]*DATE/ { printf "YEAR=%s\n",$3 } /^[[:space:]]*TITLE/ { if (achtung==1) printf "TITLE1=%s\n",$0 } /^[[:space:]]*PERFORMER/ { if (achtung==1) printf "PERFORMER1=%s\n",$0 } /^[[:space:]]*TRACK[[:space:]]*[0-9]*/ { achtung=0 } /^[[:space:]]*TRACK[[:space:]]*0*1/ { achtung=1 }' your_file | sed 's/^\([A-Z0-9]*=\)[^"]*\(".*\)$/\1\2/'`

echo $GENRE
echo $TITLE1
echo $PERFORMER1
echo $YEAR



dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Спасибо большое за ответы! Мне удалось немного продвинутся в решении проблемы. Но загвоздка в нахождении повторении слов FILE. PERL: while ( $data =~ m{ \b (\S+) \b ( \s+ \1 \b ) + }xig ) { print "$1\n"; } Это регулярное выражение не находит ни одного повторения. В чем может быть ошибка?

anonymous
()
Ответ на: комментарий от anonymous

Извеняюсь, речь идет о таком куске текста:
REM GENRE "Russian Rock"
REM DATE 1997
REM DISCID 8908890B
REM COMMENT "ExactAudioCopy v0.95b3"
PERFORMER "Агата Кристи"
TITLE "Второй фронт"
FILE "01 - Инспектор по....wav" WAVE
TRACK 01 AUDIO
TITLE "Инспектор по..."
PERFORMER "Агата Кристи"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "Гномы-каннибалы"
PERFORMER "Агата Кристи"
INDEX 00 02:44:01
FILE "02 - Гномы-каннибалы.wav" WAVE
INDEX 01 00:00:00
TRACK 03 AUDIO
TITLE "Пантера"
PERFORMER "Агата Кристи"
INDEX 00 03:59:00

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.