2013-06-20 2 views
1

Я пытаюсь удалить все повторяющиеся строки из файла и с помощью этой команды:Удаление повторяющихся строк из текстового файла

sort text.txt | uniq -u > ALL.txt 

Но я получаю эту ошибку:

sort: string comparison failed: Invalid or incomplete multibyte or wide character 
sort: Set LC_ALL='C' to work around the problem. 
sort: The strings compared were `http://lestarsmagazine.com/2011/10/07/adja-ndoye-ex-mannequin-\253-balla-gaye-adja-diallo-mara-ndiaye-l\222alcool-la-drogue-et-moi-\273/2691278-3806038/ | 0\r' and `http://sopfree.com/slight-conditioning/ | 0\r'. 

Что мне нужно изменить команду, чтобы обойти эту проблему?

+0

Обратите внимание, что 'uniq -u' будет показывать только строки, появляющиеся один раз. Поэтому, если строка появляется> = 2 раза, она не будет отображаться * вообще *. – fedorqui

ответ

3
LC_ALL='C' sort text.txt | LC_ALL='C' uniq > ALL.txt 

Редактировать: Удалено '-u'. Из вашего описания это звучит так, будто вы не должны его использовать. Возможно, вы неправильно поняли справочную страницу. Эта опция пропускает нестандартные строки из ввода, а не объединяет их.

+0

Пробовал это и до сих пор получил ту же ошибку:/ –

+0

Это должно сработать. Если это не так, мне, вероятно, понадобится ваш исходный файл ввода, чтобы понять, почему. Если вы можете поделиться им на http://www.filedropper.com. – ccarton

+1

Я добавил второй 'LC_ALL = 'C'', который разрешил бы ошибку, вызванную' uniq'. – admdrew

0

Проблема не в том, что ваша команда неправильная, а ваши данные. Из ошибки, похоже, что разделители строк в text.txt неверны или искалечены. Я настоятельно рекомендую вам просмотреть ваши данные (даже просто открыть его в текстовом редакторе и снова сохранить его обратно, может исправить его) или отправить его здесь, чтобы кто-то еще мог его просмотреть.