среда, 25 апреля 2012 г.

Поиск повторов в текстовых файлах

Нужно найти пересечения текстовых файлов (ранее были xls) по части строки - так называемому идентификатору. Повторы одного и того же идентификатора в разных файлах помог скрипт:

#!/bin/sh

ls *csv | while read FNAME
do
  grep -v "Дата отп." $FNAME | perl -pe 's#^.*(<.+\d+>).*$#$1#' > list;
  cat list | while read LINE; do grep "$LINE" *csv; done | grep -v "$FNAME";
done


"Дата отп." - регулярное выражение для отбрасывания лишних строк, например заголовков повторяющихся в каждом файле,
's#^.*(<.+\d+>).*$#$1#' - регулярное выражение, для извлечения из строки идентификатора, в данном случае ищем что-то вроде <... 123456>.

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

Отправить комментарий