Решения тех проблем, с которым мне приходилось сталкиваться.

понедельник, 26 октября 2009 г.

Посчитать количество повторяющихся строк

Например, есть файл с таким содержимым:


A
B
A
C
B
A

Нужно получить такое:

A - 3
B - 2
C - 1

Можно это сделать с помощью awk, но еще проще сделать с помощью утилиты uniq с ключом -c.

среда, 21 октября 2009 г.

сконвертить секунды unix в человеческий формат

Как, например, преобразовать число 1256118655, являющееся количеством секунд с начала Эпохи в нормальное представление?
Вот такой командой:


date -d @1256118655

Т.е. - отобразить (-d) дату, заданную строкой @1256118655. Здесь именно '@' указывает, что исходное число - unix time. А в man date об этом не сказано. Но зато сказано в info date. В этом отличие команды GNU date от аналогичной в BSD. Там формат исходой даты можно задавать явно, а в линукс команда в большинстве случае догадывается и парсит его сама, за исключением вот таких особых случаев, когда ей нужно явно на это намекнуть.

вторник, 6 октября 2009 г.

Рекурсивное назначение прав для директорий

Если нужно раздать права для всего дерева, но чтобы атрибут "x" прописался только для директорий можно использовать такую команду:


chmod -R +rwX somepath/

Раньше я пользовался для этих целей чуть более сложной конструкцией

find somepath/ -type f -exec chmod +rw \{\} \;
find somepath/ -type d -exec chmod +rwx \{\} \;