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

0

  1. 1
  2. 2
for i in `seq 1 10000`; do echo $i; done | parallel --gnu sh -c ':;echo {}; python getreq.py {} >olymp-{}.html'
(for i in olymp-*.html; do echo `md5sum $i`; done) | sort | awk '{ print $2, $1 }' | uniq -f 1 | awk '{ print $1 }' | xargs -I{} -n 1 sh -c ":;(cat {} | egrep -o 'question__section-name.*?</div>' | sed 's/question__section-name\">//g' | sed 's/<\/div>//g' | tr -d '\n'); echo \ {}" | sort | awk '{ print $(NF)}' | xargs -I{} -n 1 cat {} >>total2.html

Скачал все задачки универсиады и собрал в один файлик.
Смотреть страшно

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

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

  • seq, parallel... прямо как в какой-нибудь функциональщине...
    Ответить
    • Write once, run once and forget. Т.е. не говно. Как бы ужасно оно не выглядело.
      Ответить
      • ни в коем случае не говно, требований к поддержке же в задаче не было.
        Ответить
  • жесть. кто-то по пьяни шеллствовал? - на трезвую голову `for i in `seq 1 10000`; do echo $i; done` и `echo `md5sum $i`` не пишут.

    ЗЫ про uniq -f не знал.
    Ответить
    • md5sum olymp-*.html же прокатит вместо этой фигни в скобках? Или я сегодня туплю и неправильно понял задумку автора?
      Ответить
      • естественно покатит. у md5sum стабильный интерфейс на stdout: строка <hash> <file-name> для каждого входного файла.
        Ответить
    • Спасибо! теперь однострочные высеры будут немножко короче 🙂

      Меня больше удивило поведение parallel

      $ echo 1 | parallel --gnu sh -c 'echo {}'

      $ echo 1 | parallel --gnu sh -c ':;echo {}'
      1

      первая команда выводит пустоту, вторая работает отлично.
      Ответить
      • почему я parallel и не пользуюсь. в теории прога должна быть полезной. но реализация совсем кривая. можно прям таки сказать гнутая.

        если мне что надо параллелить (редко) то я как правило просто бью на части, и части секвенциально запускаю (`&` + `wait`). для run-once батчей, +/-5 минут большой роли не играют.
        Ответить
  • xargs -I{} -n 1 cat {}


    блин, в конце стоит самый сочный Г!

    конкатенация катов!
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8