Решено: uniq, sort? (Повторяющиеся строки)
Модераторы: SLEDopit, Модераторы разделов
-
aka
- Сообщения: 171
Решено: uniq, sort?
Чем еще можно вычислить повторяющиеся строки кроме uniq и sort??
Проблема в том что есть файл в отором есть строки одинаковые полностью кроме последних нескольких символов.Как можно выкинуть первую "повторяющуюся" строку??
Проблема в том что есть файл в отором есть строки одинаковые полностью кроме последних нескольких символов.Как можно выкинуть первую "повторяющуюся" строку??
Мой блог -- unixway.info --
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Решено: uniq, sort?
Начнем с того, что "строки одинаковые полностью кроме последних нескольких символов" таки не являются одинаковыми. ;)
А чтобы решить вашу задачу, можно, например, учитывать при сортировке не всю строку, а только определенное количество символов в ее начале.
А чтобы решить вашу задачу, можно, например, учитывать при сортировке не всю строку, а только определенное количество символов в ее начале.
-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
Cогласен, таки не являются))) В том то и дело что uniq например дает только пропустить какое то кол-во символов в начале строки, а мне нужно с конца пропустить что ли...Вообщем вы то правильно сказали, но я не увидел как с помощью этих двух програм сделать такое...
Вроде нашел.
Код: Выделить всё
uniq -w25 file.txtЭто мне выводит именно те строки, что нужно удалить, но именно удалить, а не оставить
Мой блог -- unixway.info --
-
zov
- Сообщения: 255
Re: Решено: uniq, sort?
% echo -e "XXX 1\nXXX 2\nXXX 3"
XXX 1
XXX 2
XXX 3
% echo -e "XXX 1\nXXX 2\nXXX 3" | rev | sort | uniq --skip-fields=1 | rev
XXX 1
?
XXX 1
XXX 2
XXX 3
% echo -e "XXX 1\nXXX 2\nXXX 3" | rev | sort | uniq --skip-fields=1 | rev
XXX 1
?
-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
zov, или я чего то недопонял в вашем варианте, или...но я заранее не знаю какими будут ХХХ 1\n XXX 2\n...
Мой блог -- unixway.info --
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Решено: uniq, sort?
Тогда хотя бы приведите пример того, с чем вам уже довелось столкнуться.
-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
С тем, что я могу командой , оставить повторяющиеся строки, а не убрать их...Нужно просто выкинуть их из файла.
Код: Выделить всё
uniq -w25 file.txtМой блог -- unixway.info --
-
pelmen
- Сообщения: 1268
- ОС: debian
Re: Решено: uniq, sort?
cat file.txt | grep -v `uniq -w25 file.txt (или какая там у тебя команда, которая выводит лишние строки) ` > newfile.txt
может подойдет ?
может подойдет ?
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
Именно эта команда выводит, но с вашим вариантом не прошло
Конечно же читал!
Код: Выделить всё
uniq -u -w25 file.txtНичего вообще не выводит.
Мой блог -- unixway.info --
-
pelmen
- Сообщения: 1268
- ОС: debian
Re: Решено: uniq, sort?
а так?
у меня сработалоcat tmp.txt | grep -v "`uniq -w4 tmp.txt`" > newtmp.txt
cat tmp.txt | grep -v "`cat tmp.txt | uniq -w25`" > newtmp.txt
с этими командами работаю впервые, просто немного логического мышления
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Решено: uniq, sort?
Тогда остается предположить, что в файле нет уникальных строк.
Вот пример, сработавший у меня. Надеюсь, комментарии не потребуются.
...
$ cat file
abcdefg 21.05.09 prefix 09:42:24 гггг suffix
abcdefg 21.05.09 prefix 15:05:04 suffix ааа
abcdefg 22.05.09 prefix 05:04:59 suffix ббб
cdefgab 21.05.09 prefix 15:05:04 ааа suffix
qwertyu 21.05.09 prefix 09:42:24 гггг suffix
qwertyu 21.05.09 prefix 09:42:24 гггг suffix
$ uniq -w7 -u file
cdefgab 21.05.09 prefix 15:05:04 ааа suffix-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
Да я все понимаю.Задача, то на первый взгляд простая, но с помощью uniq не решается.Может есть аналог?Sort,уже пробовал...
Мой блог -- unixway.info --
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
-
McLeod095
- Сообщения: 477
- ОС: Люблю слаку
Re: Решено: uniq, sort?
Может это поможет
The input need not be sorted, but repeated input lines are detected
only if they are adjacent. If you want to discard non-adjacent
duplicate lines, perhaps you want to use `sort -u'
Взято из info uniq
В принципе тут все понятно
Перед тем как передать команде uniq список он должен быть отсортирован
Попробую предположить что
cat file.txt | sort -k 1,25 | uniq -u -w25
поможет
хотя хотелось бы увидеть кусок файла с исходными данными
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: uniq, sort?
Уважаемый aka, выложите наконец файл с примером данных, которые вам нужно сортировать.
А то какая-то неконструктивная тема получается - люди вам предлагают различные варианты, а вас не устраивает.
в противном случае тема подлежит закрытию, т.к. превращается в аттракцион по угадыванию мыслей.
А то какая-то неконструктивная тема получается - люди вам предлагают различные варианты, а вас не устраивает.
в противном случае тема подлежит закрытию, т.к. превращается в аттракцион по угадыванию мыслей.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
pelmen
- Сообщения: 1268
- ОС: debian
Re: Решено: uniq, sort?
cat tmp.txt | grep -v "`uniq -w25 tmp.txt`" > newtmp.txt
это 100% рабочий код как раз для Ваших целей, что не так?
это 100% рабочий код как раз для Ваших целей, что не так?
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Решено: uniq, sort?
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
-
aka
- Сообщения: 171
Re: Решено: uniq, sort?
Спасибо всем людям,которые помогали
Мне подошел вот этот вариант:

Код: Выделить всё
cat tmp.txt | grep -v "`uniq -w25 tmp.txt`" > newtmp.txtМой блог -- unixway.info --
Спасибо сказали: