Home

13 Мар, 2008

Работа. Есть 2 файла, надо найти пересечение.

Сегодня возникла задача - есть 2 файла, нужно сравнить их и вывести только те строки которые есть и в первом, и во втором, т.е. пересечение.

Не долго думая, из-под руки вышло следующее:
diff -y new.lst old.lst | grep -Ev '>|<|\|' | perl -l12ane 'print $F[0]'
Ну не знаю, почему так получилось :)

UPD:  join new.lst old.lst

15 Янв, 2008

Работа. Перевод проекта с cp1251 на utf8.

Обычная такая задача для любого разработчика - перевести проект с одной кодировки в другую.
Кроме того, что нужно перевести БД и научить скрипты работать с utf8-данными и отдавать их, нужно перевести все шаблоны и все исходники в UTF-8. Причем не просто с BOM-символом, а в UTF-8 Cookie  - в первых двух строчках должна быть кука - encoding="utf8" (кука зависит от настроек редактора, мне нравится такая :).
Для любителей рутины задача превосходная - открыл файл, добавил куку, сохранил как UTF-8 Cookie (так чтобы вся не латиница осталась корректной) и закрыл.
После того, как я перевел в ручную 2 файла, я устал (всего файлов несколько сотен).

Вот скрипт, который меня спас - написал за пол-часа:

23 Янв, 2007

Поиск файлов и замена содержимого на месте

Возникла потребность в написание скрипта, который для статичного сайта заменит одну строку на другую, причем таких правил может быть несколько.

Первая мысль - написать Perl-скрипт, который рекурсивно пройдется по дереву сайта, найдет все *.html файлы, применит к каждому ряд правил и сохранит.

Но я не ищy легких путей :)

Поэтому решил написать BASH-скрипт, используя утилиту find и конечно же сам perl.

Код:
#!/bin/bash

find . -regex '.*\.html' | while read FILE
do
echo $FILE
perl -pi - $FILE <<-'PERL'
# список правил
s{222}{333}g;
PERL
done

Получилось очень просто и со вкусом.
Спасибо [info]pavel_kudinov за идею использовать STDIN, вместо атрибута -e в perl.
Метки: , , ,
sharifulin

Декабрь 2009

Вс Пн Вт Ср Чт Пт Сб
  12345
6789101112
13141516171819
20212223242526
2728293031  

Реклама

Метки

Трансляция

RSS Atom
Разработано LiveJournal.com