На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
SelF
Сообщения: 83
Сообщение
SelF » 20.10.2009 17:35
Сравниваю два файла:
file1 и file2 - список файлов в двух хранилищах. Длиной порядка 12 Мб каждый.
result - здесь должен быть список файлов, которые есть в первом, но отсутствуют во втором хранилище. Их порядка 10 000 штук
Проблема в том, что результирующий файл равен по объему исходному файлу и в нем записаны все файлы, а не те, которые отсутствуют.
Вопрос:
Как сравнить два файла и строки, которые различаются, записать в отдельный файл?
С уважением.
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 20.10.2009 21:18
Код: Выделить всё
$ cat /tmp/1
blank.php
calc.php
change-status.php
contragent-naryad.php
contragent.php
database1.php
database2.php
database3.php
database4.php
database.php
edit1.php
edit2.php
edit3.php
edit4.php
edit.php
info.php
logout.php
main.php
menu.php
message.php
new1.php
new2.php
new3.php
new4.php
new5.php
new.php
new-zakaz.php
ready.php
remont1.php
remont2.php
remont3.php
remont4.php
remont-act.php
remont.php
search.php
sklad.php
stat1.php
stat2.php
stat.php
test.php
user.php
vector.php
Код: Выделить всё
$ cat /tmp/2
blank.php
calc.php
change-status.php
contragent-naryad.php
contragent.php
database1.php
database2.php
database3.php
database4.php
database.php
Код: Выделить всё
$ diff /tmp/1 /tmp/2 | awk '{print $2}' | grep -v ^$
edit1.php
edit2.php
edit3.php
edit4.php
edit.php
info.php
logout.php
main.php
menu.php
message.php
new1.php
new2.php
new3.php
new4.php
new5.php
new.php
new-zakaz.php
ready.php
remont1.php
remont2.php
remont3.php
remont4.php
remont-act.php
remont.php
search.php
sklad.php
stat1.php
stat2.php
stat.php
test.php
user.php
vector.php
Вопрос больше относится к
Работа в командной строке
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 20.10.2009 21:38
comm
SelF
Сообщения: 83
Сообщение
SelF » 21.10.2009 11:12
IMB , ОГРОМНОЕ СПАСИБО!!!
P.S. Жаль что на форуме нет рейтингов - поставил бы по максимуму!
deadhead
Сообщения: 1913
Статус: zzz..z
Сообщение
deadhead » 21.10.2009 11:18
зато есть кнопочка спасибо ;-)
[x] close
SelF
Сообщения: 83
Сообщение
SelF » 21.10.2009 11:34
deadhead писал(а): ↑ 21.10.2009 11:18
зато есть кнопочка спасибо ;-)
Спасибо за "спасибо"!
SelF
Сообщения: 83
Сообщение
SelF » 23.10.2009 01:46
Хм.. Странно.Сейчас запускаю ту же команду - в результате получаю склееный файл из двух сравниваемых:
diff f1 f2 | awk '{print $2}' | grep -v ^$ > diff_f
Что может быть не так?
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 23.10.2009 08:39
SelF писал(а): ↑ 23.10.2009 01:46
Хм.. Странно.Сейчас запускаю ту же команду - в результате получаю склееный файл из двух сравниваемых:
diff f1 f2 | awk '{print $2}' | grep -v ^$ > diff_f
Что может быть не так?
Да сделайте уже comm -23 f1 f2 и получите строки, уникальные для f1.
SelF
Сообщения: 83
Сообщение
SelF » 23.10.2009 10:59
comm -23 f1 f2 > dif
ls -la:
6656604 Oct 23 02:43 dif
6656604 Oct 22 17:09 f1
6993014 Oct 22 17:34 f2
не выводит
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 23.10.2009 11:02
Что в f1 и f2?
SelF
Сообщения: 83
Сообщение
SelF » 23.10.2009 12:11
KiWi писал(а): ↑ 23.10.2009 11:02
Что в f1 и f2?
список файлов из двух удаленных хранилищ вида s3://videos/0003E.mp4
задача стоит синхронизировать изменения в f1 для f2.
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 23.10.2009 12:27
SelF писал(а): ↑ 23.10.2009 12:11
список файлов из двух удаленных хранилищ вида s3://videos/0003E.mp4
Каков вопрос -- такой и ответ: в файлах нет общих строк.
SelF
Сообщения: 83
Сообщение
SelF » 23.10.2009 16:47
KiWi писал(а): ↑ 23.10.2009 12:27
SelF писал(а): ↑ 23.10.2009 12:11
список файлов из двух удаленных хранилищ вида s3://videos/0003E.mp4
Каков вопрос -- такой и ответ: в файлах нет общих строк.
В том-то и дело, что есть.
В хранилище 2 ранее были перекинуты файлы из хранилища 1
/dev/random
Администратор
Сообщения: 5501
ОС: Gentoo
Сообщение
/dev/random » 23.10.2009 17:56
SelF писал(а): ↑ 23.10.2009 16:47
В том-то и дело, что есть.
В хранилище 2 ранее были перекинуты файлы из хранилища 1
А разве это означает наличие _полностью_ одинаковых строк? По идее, у этих строк одинаковыми должны быть только "хвосты", после последнего слэша.