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

Показаны сообщения с ярлыком текст. Показать все сообщения
Показаны сообщения с ярлыком текст. Показать все сообщения

четверг, 10 декабря 2009 г.

посчитать кол-во некоторого символа в файле

Допустим, ищем количество запятых (,) в файле. Нашел в интернете несколько решений:


  1. awk '{c+=gsub(s,s)}END{print c}' s=',' input.txt

  2. grep -o \, input.txt | wc -l

  3. tr -dc \, < input.txt | wc -c

четверг, 1 ноября 2007 г.

вырезать строки из середины файла

Вопрос: Как вырезать строки с номерами с x по y из текстового файла? Например, есть файл:


1
2
3
4
5

Хочется получить

3
4

Ответ: как всегда на помощь приходит sed

sed -n '3,4p' test.txt

четверг, 28 июня 2007 г.

перекодировка текста

До сих пор часто требуется перекодировать файл из одной кодировки в другую. Например, если он попал на машину с системы Windows, для которой родной 8-битной является Windows-1251.
До сего дня не знал, что в большинстве nix-систем есть маленькая программка iconv, которая перекодирует стандартный поток ввода и направляет результат в стандартный поток вывода.
Формат использования самоочевидно прост:


iconv -f <from_encoding> -t <to_encoding>

Также можно посмотреть список поддерживаемых кодировок:

iconv -l

Сама функция iconv предоставляется glibc, так что действительно программа вездесуща.

вторник, 19 июня 2007 г.

заменить текст в группе файлов

Для тех из вас, кто достаточно искушен в стандартных утилитах unix есть такой совет:


find *.py -print0 | xargs sed -i 's/old/new/g'

В данном простом случае можно обойтись и без find:

sed -i 's/old/new/g' *.py

суббота, 28 апреля 2007 г.

маленькие, но полезные утилитки

flip - перекодирует текст из unix в dos формат и наоборот, т.е. по сути убирает или добавляетсимволы с кодом 13 в окончанию строк. Знаю о утилите еще со времен сидения под Debian.

recode - перекодирует текст из одной кодировку в другую. Пользоваться примерно так:

recode cp1251..utf8 mydocument.txt