Beri bash i ebash / Говнокод #3223 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
#!/bin/bash

curl http://www.radioroks.com.ua/online.php | grep '<b>' > /tmp/roks

sed -e 's/<[^>]*>//g' /tmp/roks > /tmp/roks2
sed -e 's/·/- /g' /tmp/roks2 > /tmp/roks
sed -e 's/\t//g' /tmp/roks > /tmp/roks2

sed -e 's/\:-/\:\
-/g' /tmp/roks2 > /tmp/roks

cat /tmp/roks | head -n $1

Кажется, писал под утро. Не вдуплился юзать только 1 файл, а жонглировал /tmp/roks и /tmp/roks2 ...

Запостил: Anderson Anderson, (Updated )

Комментарии (10) RSS

    • вы наверное хотели сказать "cat не нужен"

      выглядит как обычный, на быструю руку писанный скрипт. реально проглядывается как оно пошагово пивался - тот же cat включая.
      Ответить
      • И cat не нужен.
        И grep первый тоже не нужен:)

        На быструю руку писанный скрипт — это нормально, надо быстро соорудить что-то, что решает задачу. Тут единственная бага в том, что люди привыкли к однострочным sed-программам, которые только заменяют одно на другое.
        А sed — он мощнее.
        Ответить
        • sed то он мощен, но в данном случае был бы awk более правильным кандидатом.

          но блин обсуждения "как оно могло бы быть лучше" занимают часто больше времени чем само по себе написание скрипта.

          я бы на шелле и оставил - потому что все равно тривиально. и эффективность здесь сильно не нужна.
          Ответить
          • Да нафига тут awk??? Чистая задача для sed! По крайней мере, как я понимаю, выдрать в удобочитаемом виде плейлист путем выкусывания всего ненужного.
            Ответить
            • awk может заменить шаг с grep. d в sed не очень читабельно. а в awk это будет просто `/regexp/ { ...; print }`
              Ответить
              • А зачем d в sed? Тот же самый адресный диапазон для команд. Что-то типа того (я тут по-честному заменяю <br> на \n; чтобы сохранить логику, потом пустые строки можно выкусить):
                curl http://www.radioroks.com.ua/online.php| sed -n '/<b>/{s/<br>/\n/g;s/<[^>]*>//g;s/·/- /g;s/\t//g;p}'
                Ответить
                • да блин. угаварил 😀

                  ЗЫ ну вот что-то новое про sed еще узнал 😉
                  ЗЗЫ мое плохое знание sed/awk объясняется тем что все что у меня не лезет в шел, я на перле пишу.
                  Ответить
                  • Мне чем нравятся адресные диапазоны в sed (в отличие от того же awk), что тут можно копать от забора до обеда — от первой строки до той, в которой встретится что-то, или наоборот, от чего-то и до конца.
                    А перл — это да, перл — это голова. Еще б был везде, я б на нем только и писал:)

                    PS. Я, собственно, только недавно что-то серьезное на sed стал писать. Выкусывалку внешних ключей из описания схемы, например:)))

                    /[[:space:]]*CONSTRAINT "[^"]*" FOREIGN KEY/{
                      :inforkey
                      /,$/{
                        s/,$//
                        w forkey
                        d
                      }
                      w forkey
                      n
                      /^[[:space:]]*)/b out
                      b inforkey
                      :out
                      x;s/,$//;p;d
                    }
                    ${
                      g;s/^\n//;p
                    }
                    H


                    PS. Обещают автоматически определить язык кода, посмотрим:)))
                    Ответить
      • И да «писал под утро» — стандартная отмазка, уже не катит! Ночью спать надо, а не говнокоды писать!:)
        Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8