LINUX.ORG.RU

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

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

да мне собственно нужно было результаты работы распарсить, убрать повторы которые вчера писал в старый файл

Deleted
()
Ответ на: комментарий от anon_666
g@lenovo:~$ cat oooold.txt |wc -l
41843
g@lenovo:~$ cat words_sort.txt |wc -l
869709
g@lenovo:~$ cat oooold.txt words_sort.txt|wc -l
911552
g@lenovo:~$ cat oooold.txt words_sort.txt|sort -u|wc -l
875805
grep -vf oooold.txt words_sort.txt >> uuuniq.txt

g@lenovo:~$ ls -la uuuniq.txt 
-rw-r--r-- 1 g g 0 2011-01-20 14:27 uuuniq.txt

почему получается файл 0 размера?

поможет ли тут кстати fdupes? (судя по описанию - нет?)

Deleted
()
Ответ на: комментарий от Deleted

вкратце - нужно выкинуть из words_sort.txt те строки, которые есть в oooold.txt и поместить результат в uuuniq.txt

Deleted
()
Ответ на: комментарий от Deleted
g@lenovo:~$ head -n 10000 words_sort.txt > test_words.txt
g@lenovo:~$ tail -n 100 oooold.txt > test_old.txt
g@lenovo:~$ grep -vf test_old.txt test_words.txt |wc -l
9994

что за бред? памяти что ли не хватает :(

Deleted
()
Ответ на: комментарий от Deleted

более того, еще и грузит только 1 ядро.

Deleted
()
Ответ на: комментарий от Deleted

Очевидно, строки в oooold.txt содержат спецсимволы, кот-е нужно экранировать.
Чтобы не ипать моск, можно написать это на питоне:

import sys

if len(sys.argv) != 3:
  print('error in arguments')
  sys.exit(1)

try:
  pf, f = open(sys.argv[1]), open(sys.argv[2])

except IOError:
  print('error opening files')
  sys.exit(1)

p = pf.read().split('\n')

for i in f:
  i = i[:-1]
  if i not in p: print(i)
Использование: 1.py oooold.txt words_sort.txt > uuuniq.txt.

anon_666
()
Ответ на: комментарий от anon_666

еще раз спасибо, как раз питон начал осваивать

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.