amarao (amarao_san) wrote,
amarao
amarao_san

shell guru

Как реализовать паттерн матчинг?

Дана простейшая задача: распаковать файл неизвестным образом запакованный и скормить его в file. Можно написать выматывающий душу скрипт с определением типа архива.

А можно написать активный pattern matching:

cat somefile| (bzip2 -dc || gzip2 -dc || cat ) | file -

Обратите внимание на cat - это 'success by default', оно позволит скормить в file наш файл без преобразований, если ни один распаковщик не справился. Желающие могут расширить любым количеством архиваторов, ключевым является "не писать херню, если не понял что внутри" и "читать/писать на stdio".
Tags: shell programming
Subscribe

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Шли годы, а я учусь башу.

    Офигеть. Офигеть. echo <(echo hello) foobar /dev/fd/63 foobar Я этого честно не знал. Я знал, что в конце можно, а что можно в середине -…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments