URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5915
[ Назад ]

Исходное сообщение
"Удаление повторяющихся строк (Bash или awk)"

Отправлено SerVnk , 15-Ноя-06 12:44 
Подскажите алгоритм!
Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле след. вида:
39111 39112
39111 39114
39111 39123
39112 39111 *
39112 39113
39113 39112 *
...
39123 39111 *

файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо удалить!


Содержание

Сообщения в этом обсуждении
"Удаление повторяющихся строк (Bash или awk)"
Отправлено madskull , 15-Ноя-06 13:55 
>Подскажите алгоритм!
>Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле
>след. вида:
>39111 39112
>39111 39114
>39111 39123
>39112 39111 *
>39112 39113
>39113 39112 *
>...
>39123 39111 *
>
>файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо
>удалить!

sort -u
или
sort | uniq


"Удаление повторяющихся строк (Bash или awk)"
Отправлено SerVnk , 15-Ноя-06 14:36 
>>Подскажите алгоритм!
>>Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле
>>след. вида:
>>39111 39112
>>39111 39114
>>39111 39123
>>39112 39111 *
>>39112 39113
>>39113 39112 *
>>...
>>39123 39111 *
>>
>>файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо
>>удалить!
>
>sort -u
>или
>sort | uniq

sort -u удалит мне повторяющиеся строчки, а мне необходимо избавиться от повторных сочетаний. Например:
39111 39112
39112 39111
нужно удалить вторую строчку т.к. такое сочетание цифр уже есть в первой строке


"Удаление повторяющихся строк (Bash или awk)"
Отправлено perece , 15-Ноя-06 15:36 
>>>Подскажите алгоритм!
>>>Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле
>>>след. вида:
>>>39111 39112
>>>39111 39114
>>>39111 39123
>>>39112 39111 *
>>>39112 39113
>>>39113 39112 *
>>>...
>>>39123 39111 *
>>>
>>>файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо
>>>удалить!
>>
>>sort -u
>>или
>>sort | uniq
>
>sort -u удалит мне повторяющиеся строчки, а мне необходимо избавиться от повторных
>сочетаний. Например:
>39111 39112
>39112 39111
>нужно удалить вторую строчку т.к. такое сочетание цифр уже есть в первой
>строке
если порядок результатов не важен, то:
awk '{if($1 < $2){print $1 " " $2} else{print $2 " " $1}}' | sort | uniq

\^P^/


"Удаление повторяющихся строк (Bash или awk)"
Отправлено SerVnk , 15-Ноя-06 20:31 
Да! Все оказалось гораздо проще чем я думал! Большое спасибо за помощь!