Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Uniq command line  (Прочитано 437 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Kastrulya01

  • Автор темы
  • Гость
Uniq command line
« : 20 Апрель 2016, 16:13:05 »
Всем добрый день.
Подскажите,пожалуйста,как воспользоваться командой uniq так,чтобы уникальность определялась только по первому полю,а остальня часть строк не проверялась?
Например:
hello 123
hello 345
hello 567
Нужно вывести:
hello 123

Оффлайн R.E.I.S.U.B.

  • Участник
  • *
  • Сообщений: 102
  • Welcome to the Madhouse!
    • Просмотр профиля
Re: Uniq command line
« Ответ #1 : 20 Апрель 2016, 18:17:56 »
Только если awk'ом:
awk '{print$1}' <filename> | uniq -uНу или grep'ом:
grep -m1 <regexp> <filename>
ОС: Ubuntu 14.04.1 LTS 64-bit; Ядро: 3.19.0-56-generic

Оффлайн accipiter

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Uniq command line
« Ответ #2 : 22 Апрель 2016, 17:00:28 »
uniq может пропускать столбцы, т.е. нужно сначала поменять местами столбцы
awk '{print $2, $1}' 1 | uniq -f1 | awk '{print $2, $1}'

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Uniq command line
« Ответ #3 : 22 Апрель 2016, 17:13:43 »
если awk'ом:
Классический пример который есть почти во всех справочниках:
Код: Bash
  1. awk '!seen[$1]++'
Если текст сортирован (что требует и uniq кстати) можно использовать sed
Код: Bash
  1. sed ':1;$!N;s/\(\(\S\+\).*\)\n\2.*/\1/;t1;P;D' <(sorted_input)
« Последнее редактирование: 22 Апрель 2016, 17:21:09 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 14921
  • Я не слышу.
    • Просмотр профиля
Re: Uniq command line
« Ответ #4 : 22 Апрель 2016, 18:13:22 »
.... | head -1
~.o

 

Страница сгенерирована за 0.065 секунд. Запросов: 25.