kika: (Default)
kika ([personal profile] kika) wrote2009-04-26 11:37 pm
Entry tags:

Загадки для сисадминов

Как в шелле создать файл длиной N (или даже M) байт, состоящий сплошь из символов 'X' (или 'A') ?

Я легко придумал решение, но оно поражает даже меня своим идиотизмом.

[identity profile] kika.livejournal.com 2009-04-26 08:11 pm (UTC)(link)
Да, это решение элегантнее моего, хотя мое наверное эффективнее.

Собственно, я использовал
cat /dev/zero | tr '\000' 'Z' | dd bs=1 count=N > file

[identity profile] kika.livejournal.com 2009-04-26 08:11 pm (UTC)(link)
после чего подумал что я наверное идиот.

[identity profile] squadette.livejournal.com 2009-04-26 09:33 pm (UTC)(link)
это решение пахнет Хаскеллом

[identity profile] kika.livejournal.com 2009-04-26 10:01 pm (UTC)(link)
Я сначала хотел написать "ты меня пугаешь", а потом подумал что это еще непонятно кто сильнее меня пугает, ты или я сам.

[identity profile] furry.livejournal.com 2009-04-26 09:54 pm (UTC)(link)
Я тоже первым делом про dd подумала. Мне кажется, максимально масштабируемый вариант, anyway.

[identity profile] dmzlj.livejournal.com 2009-04-27 02:33 am (UTC)(link)
извращенно. но наверное да, быстрее.

[identity profile] dmzlj.livejournal.com 2009-04-27 03:40 am (UTC)(link)
Ну тогда, наверное, лучше было так:

cat /dev/zero | head -c 1000000 | tr '\0x000' 'A' > file


собственно, использовать tr была первая мысль, только я что-то сразу не нашелся, на что его натравить.

[identity profile] d1f.livejournal.com 2009-04-27 03:54 am (UTC)(link)
и вам премию за cat.

[identity profile] d1f.livejournal.com 2009-04-27 03:53 am (UTC)(link)
вручаю вам виртуальную премию за бессмысленное использование программы cat.

[identity profile] kika.livejournal.com 2009-04-27 04:23 am (UTC)(link)
А вам за "экономию 10-ти наносекунд в середине очень короткого цикла"(с)