четверг, 16 октября 2008 г.

Сравнение файлов

Иногда существует надобность в сравнении строк 2-х разных файлов и поиска ключей.

Например есть фаил1 с строкой вида
ID:1 NAME:Test
и фаил2 с строкой
ID:1 ARGS:1
существует надобность сравнить эти 2-ва файла и найти общие строки. например получить строку вида.
ID:1 NAME:Test ID:1 ARGS:1
Аналогичным запросом является SQL запрос в базе данных
select * from table1 t1,table2 t2 where t1.id=t2.id

Для реализации этого механизма необходимо использовать модуль grep и текстовый процессор awk.

Реализовать данный механизм в одно действие пока не получилось. Поэтому 2-ва шага

# cat file1 |awk '{print $1}' > ./pat
# cat ./file2 |grep -f ./pat


Иногда бывает необходимость узнать разницу таких в файлах (просмотреть фаил с поступившими запросами и ваил с ответами и получить список не обработанных сообщений), тогда мы просто добавляем опцию -v к последнему grep

# cat file1 |awk '{print $1}' > ./pat
# cat ./file2 |grep -vf ./pat

Комментариев нет: