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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Помогите исправить ошибку (awk)  (Прочитано 963 раз)

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

Оффлайн Ghost675

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Помогите исправить ошибку (awk)
« : 05 Декабря 2015, 14:12:49 »
Здравствуйте, помогите исправить ошибку.Данный вариант не срабатывает, поскольку в результате выводятся все отделы

awk '$5 != "SALESPERSON" {print $6}' query1.txt | sort -u

В файле query1 определить отделы, в которых нет продавцов("SALESPERSON")
« Последнее редактирование: 05 Декабря 2015, 18:33:07 от Ghost675 »

shura1

  • Гость
Re: Помогите исправить ошибку (awk)
« Ответ #1 : 05 Декабря 2015, 16:20:12 »
Данный вариант срабатывает.

1 Записи в которых нет менеджеров
cat query1.txt | awk '$5 != "MANAGER"'
2 Отделы, в которых нет менеджеров
cat query1.txt | awk '$5 != "MANAGER" {print $6}'
3 Отделы, отсортированные и в одном экземпляре.
cat query1.txt | awk '$5 != "MANAGER" {print $6}' | sort -u
4 Убираем cat поскольку некоторые люди ненавидят кошек) и получаем данную тобой команду
awk '$5 != "MANAGER" {print $6}' query1.txt | sort -u
===

Upd. Ну да. Согласен. Алгоритм неправильный. Виноват.
« Последнее редактирование: 05 Декабря 2015, 19:16:45 от shura1 »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите исправить ошибку (awk)
« Ответ #2 : 05 Декабря 2015, 18:41:06 »
shura1, Держите эмоции при себе, тем более что Вы неправы. Если в отделе кроме менеджера есть другие сотрудники, то Ваш код выведет и его.
Алгоритм должен быть другой: отбираем все отделы где есть менеджер, и исключаем их из общего списка отделов.
Код: (bash) [Выделить]
awk '{DEP[$6]=1}$5=="MANAGER"{MAN[$6]=1}END{for(d in DEP)if(!(d in MAN))print d}' query1.txt*c учётом того в предложенном файле все отделы имеют менеджера…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Ghost675

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Помогите исправить ошибку (awk)
« Ответ #3 : 06 Декабря 2015, 21:37:17 »
Спасибо

 

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