Достаточно много всего про shell, и традиционные unix-утилиты написано, но вопросы у людей все-равно продолжают возникать, никуда от этого не денешься. Я не собираюсь перекрывать мировой опыт использования unix с момента зарождения - мой личный достаточно скромен, равно как не хочу писать очередной туториал для новичков. Просто некоторые заметки о том как я этим всем пользуюсь, с некоторыми лирическими отступлениями.
Так или иначе, многим из нас приходится ежедневно работать с текстовой информацией. Часть информации ценна сама по себе - например, если вы продолжаете читать этот пост, то какую-то ценность для вас, информация здесь изложенная представляет. Есть же и такая текстовая информация, которая становится нам интересной после некоторой обработки. Возьмем например святая-святых всех линуксоидов - исходники ядра - очень много текстовых файлов, в которых сам черт ногу сломит. А "много" - это сколько?
diesel@debian:/usr/src/linux-2.6.20$ find -type f|wc -lОго, и места же это добро наверное занимает много?
23638
diesel@debian:/usr/src/linux-2.6.20$ du -hs .Не мало, да. Сколько же труда, пота и крови в это все вложено!
283M
diesel@debian:/usr/src/linux-2.6.20$ grep -irE 'fuck' . |wc -lАга, программисты не стеснялись выражать своих чувств! Интересно, а что давалось тяжелее всего?
51
diesel@debian:/usr/src/linux-2.6.20$ grep -irE 'fuck' . |cut -d/ -f2 |sort | uniq -c |sort -nИ вот уже какая-то ценность от огромной кучи непонятных файлов, после соответствующей обработки начинает появляться :). Пусть даже в данном конкретном случае ценность весьма относительная, аналогичная конструкция иногда оказывается действительно полезной.
1 Documentation
1 lib
2 fs
2 sound
4 include
5 net
12 drivers
24 arch
Для себя могу выделить две большие группы задач, которые приходится решать достаточно часто, используя традциционные unix-утилиты: различного рода переформатирование текстовой информации, например, если мы имеем .csv файл, а хотим из этого дела сделать sql-дамп для того чтобы загнать потом этот csv в базу данных; а так же поиск и замена - тут я думаю примеров не надо. Так уже сложилось что для разного рода переформатирований чаще всего используется awk; традиционными инструментами для поиска и замены конечно же являются grep и sed; конечно же есть еще и перловые однострочники, но с одной стороны - это тема для совсем отдельного разговора; с другой - с однострочным perl'ом я знаком достаточно посредственно, поэтому много на эту тему рассказать не могу, perl чаще всего использую для "клинических" случаев, которых не так уже и много.
Пожалуй, на этом месте поставлю финальную точку, дабы не делать пост уж слишком длинным, а в следующих постах посмотрим на каждую из задач более подробно и с примерами.
Комментариев нет:
Отправить комментарий