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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: awk, grep и прочие гадости:)  (Прочитано 4489 раз)

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

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #15 : 10 Ноября 2014, 15:01:05 »
При всём что я совсем не программист и С не знаю более чем абсолютно
Код: (c+) [Выделить]
RST_CLK_HSEconfig(RST_CLK_HSE_OFF); # отключeние внешнего генератора тактов HSE
RST_CLK_CPUclkPrescaler(RST_CLK_CPUclkDIV1); # назначение делителя частоты DIV1
RST_CLK_CPUclkSelection(RST_CLK_CPUclkCPU_C3); # назначение источника тактов CPU_C3
# назначение источника тактовых импульсов для CPU_PLL (Фазовой АвтоПодстройки Частоты):
RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul5);
RST_CLK_CPU_PLLcmd(ENABLE); # включение CPU_PLL
RST_CLK_CPU_PLLuse(ENABLE); # выход CPU_PLL на вход CPU_C3
Скорее всего это часть процедуры запуска контроллера (вот что google „животворящий“ делает©).
А по поводу Вашего ответа : Вы просто подбираете части задания к коду упуская при этом существенно важные(в контексте задачи) решения.

P.S. Нет смысла цитировать пост полностью если Ваш ответ итак идет сразу за ним.
« Последнее редактирование: 10 Ноября 2014, 15:04:26 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн S9

  • Автор темы
  • Участник
  • *
  • Сообщений: 163
  • Волшебник
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #16 : 10 Ноября 2014, 15:07:41 »
При всём что я совсем не программист и С не знаю более чем абсолютно
Код: (c+) [Выделить]
RST_CLK_HSEconfig(RST_CLK_HSE_OFF); # отключeние внешнего генератора тактов HSE
RST_CLK_CPUclkPrescaler(RST_CLK_CPUclkDIV1); # назначение делителя частоты DIV1
RST_CLK_CPUclkSelection(RST_CLK_CPUclkCPU_C3); # назначение источника тактов CPU_C3
        # назначение источника тактовых импульсов для CPU_PLL (Фазовой АвтоПодстройки Частоты):
RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul5);
RST_CLK_CPU_PLLcmd(ENABLE); # включение CPU_PLL
RST_CLK_CPU_PLLuse(ENABLE); # выход CPU_PLL на вход CPU_C3
Скорее всего это часть процедуры запуска контроллера (вот что google „животворящий“ делает©).
А по поводу Вашего ответа : Вы просто подбираете части задания к коду упуская при этом существенно важные(в контексте задачи) решения.
Azure я вам не собираюсь доказывать свою квалификацию, ибо мне незачем.
просто хочу найти ответы на свои вопросы, и убеждён, что незнание awk и linux не делает тебя непрограммистом. Большинству программистов они не нужны особо. Как и большинству людей.

P.S.RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul5); только правда вам гугль не написал, что это внутренний генератор высокой частоты, от которой тактируется контроллер и которая умножается на 5 (собственно это и основной смысл PLL)
Burning on the flame
Played the waiting game

Оффлайн Pilot6

  • Старожил
  • *
  • Сообщений: 14037
  • Xubuntu 18.04
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #17 : 10 Ноября 2014, 15:10:57 »
S9,
Дело не в том программист вы или нет. Просто навык нахождения и понимания информации необходим, и точно вам пригодится.
Вы всю жизнь собираетесь только контроллеры программировать? А если придется делать что-то еще? Тоже работу будете на форум переадресовавать?
Я в личке не консультирую. Вопросы задавайте на форуме.

Оффлайн S9

  • Автор темы
  • Участник
  • *
  • Сообщений: 163
  • Волшебник
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #18 : 10 Ноября 2014, 15:17:21 »
Если Вам нет, то может стоит согласиться с Vlad.V что это не Ваше? Всё-таки программирование это и образ мышления тоже.

При всём что я совсем не программист и С не знаю более чем абсолютно

а я вовсе не опытный пользователь и тем более совсем не  системный администратор, и awk не знаю более чем абсолютно

P.S. Azure спасибо вам за несколько решённых задач, они мне очень помогут. Надеюсь мне помогут разобраться с моими вопросами.
P.P.S. Особо одарённым, которым лишь бы написать что-нибудь в духе "иди погугли" просьба сделать вид, что данной темы вы не заметили. Тут есть конкретные вопросы на которые ищу конкретные ответы.

Пользователь решил продолжить мысль [time]10 Ноябрь 2014, 16:20:47[/time]:
S9,
Дело не в том программист вы или нет. Просто навык нахождения и понимания информации необходим, и точно вам пригодится.
Вы всю жизнь собираетесь только контроллеры программировать? А если придется делать что-то еще? Тоже работу будете на форум переадресовавать?
Дело в том, что работа которая у меня сейчас, мне очень нравится. Электроника + низкоуровневое программирование, это наверное та связка, которая меня никогда не надоест. А насчёт навыка вхождения, тут вы правы. И я его развиваю, но в более нужных для меня вещах (это в DSP, DDS, DAC, ADC и пр. вещах)
« Последнее редактирование: 10 Ноября 2014, 15:21:47 от S9 »
Burning on the flame
Played the waiting game

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #19 : 10 Ноября 2014, 15:43:30 »
вопросы возникающие в процессе выполнения, задаю на форуме (разве не для этих целей предназначен форум?)
Да, но Ваш случай больше похож на "сделайте за меня",т.к. даже получив готовые ответы Вы и man программы не посмотрели чтоб выяснить что делает тот или иной параметр/функция. И не надо ссылаться на незнание языка — базовые принципы (присвоение значений переменным, циклы, условия) в большинстве случаев одинаковы или очень похожи. Тем более awk с практически С-шной грамматикой.
Вы уж простите, но по моему мнению, Ваше "знание микроконтроллеров" исходя из приведенного примера (и насколько мне позволяет судить интуиция нерабочего) больше похоже на набор заученных приёмов.
P.S. Azure спасибо вам за несколько решённых задач, они мне очень помогут. Надеюсь мне помогут разобраться с моими вопросами.
Пожалуйста, но не хочу оказывать "медвежью услугу". Поэтому в отношении 3 задания скажу: Вы идете не тем путем: с awk будет намного проще решить задачу, cut совсем не нужен(но не невозможен, воспользуйтесь параметром вместо -f).
« Последнее редактирование: 10 Ноября 2014, 15:50:36 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн S9

  • Автор темы
  • Участник
  • *
  • Сообщений: 163
  • Волшебник
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #20 : 10 Ноября 2014, 16:17:30 »
Да, но Ваш случай больше похож на "сделайте за меня",т.к. даже получив готовые ответы Вы и man программы не посмотрели чтоб выяснить что делает тот или иной параметр/функция. И не надо ссылаться на незнание языка — базовые принципы (присвоение значений переменным, циклы, условия) в большинстве случаев одинаковы или очень похожи. Тем более awk с практически С-шной грамматикой.
это то да. Но ещё раз повторюсь, что моя задача в первую очередь не понять этот awk а сдать практику на awk. Это немного разные вещи, и мой подход вполне обоснован.
Вы уж простите, но по моему мнению, Ваше "знание микроконтроллеров" исходя из приведенного примера (и насколько мне позволяет судить интуиция нерабочего) больше похоже на набор заученных приёмов.
а вы наверное ожидали, что я вам весь проект выложу? Уж нет, извините. За разглашение гос. тайны могут куда-нибудь спрятать.
Пожалуйста, но не хочу оказывать "медвежью услугу". Поэтому в отношении 3 задания скажу: Вы идете не тем путем: с awk будет намного проще решить задачу, cut совсем не нужен(но не невозможен, воспользуйтесь параметром вместо -f).
ну у меня то особого выбора нет;) буду пробовать, надеюсь мне здесь помогут

Пользователь решил продолжить мысль 10 Ноября 2014, 16:34:23:
Пожалуйста, но не хочу оказывать "медвежью услугу". Поэтому в отношении 3 задания скажу: Вы идете не тем путем: с awk будет намного проще решить задачу, cut совсем не нужен(но не невозможен, воспользуйтесь параметром вместо -f).
надеюсь, что если я спрошу ещё вопрос, это не будет "медвежьей услугой"
Количество жёстких ссылок определил, пусть и не совсем лаконично выглядит, но всё же. Вопрос не в этом. Вопрос в том, может ли быть 1772 или 138 жёстких ссылок на файл? или это какое-то левое число попало?
ls -la /etc/ | sed 's/\   /\ /g' | cut -d ' ' -f2 | grep '[^1]' | wc -lмkirra@desktop:~$ ls -la /etc/ | sed 's/\   /\ /g' | cut -d ' ' -f2 | grep '[^1]' | wc -l
138
1772
2
***
8
kirra@desktop:~$
« Последнее редактирование: 10 Ноября 2014, 16:34:23 от S9 »
Burning on the flame
Played the waiting game

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #21 : 10 Ноября 2014, 17:55:20 »
Вопросы — это правильно, это пожалуйста.
  • ls -a показывает данные по родительской «..» и текущей директории «.» Используйте ls -A(a лучше сразу stat /etc/* -c %h)
  •   + первая строчка ls : "Итого" и её надо убрать tail -n +2
  • s/\   /\ /g для регулярных выражений используют мультипликаторы «+» или «*»: s/\ \ \+/ /g (внутри ’  ’ пробелы можно не экранировать) s/ \{2,\}/ /g, s/\s\+/ /g и т.д. Но больше подходит утилита tr c параметром -s.
  • для grep лучше использовать "инверсию" параметром -v и жёстко определяя «1» целым словом: grep -vw 1


(Нажмите, чтобы показать/скрыть)

« Последнее редактирование: 10 Ноября 2014, 18:01:36 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн S9

  • Автор темы
  • Участник
  • *
  • Сообщений: 163
  • Волшебник
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #22 : 15 Ноября 2014, 00:39:23 »
посидел, решил задачки, но к сожалению, опять в немного нубском стиле
Цитировать
В файле query1 определить города, в которых есть отделы "SALES"
я решил её так
Код: (bash) [Выделить]
cat query1 | grep ".*SALES*." | sed 's/ \ */\ /g' | cut -d ' ' -f7
Цитировать
В файле query4 определить три самых больших заказа
эту задачку решил так
Код: (bash) [Выделить]
cat query4 | sed 's/ \ */\ /g' | cut -d ' ' -f5 | sort | tail --lines=3

как можно упростить эти выражения, и написать их более лаконично? Ну, по крайней мере, чтобы так ужасно не выглядели:)
P.S. Если есть возможность реализовать это через awk, то было бы вообще супер
Burning on the flame
Played the waiting game

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #23 : 15 Ноября 2014, 03:14:39 »
Ну хоть какой-то диалог…
  • grep, sed и пр. сами умеют читать из файла(ов), так что cat не обязателен
  • grep ищет по всей строке в любом месте, так что "SALES" вполне достаточно было бы, если в файле не встречалось "SALESPERSON" поэтому паттерн надо ограничить, например параметром -w (совпадение только с целым словом) или спецсимволами \b (граница слова), \> (конец слова) или простым пробелом
  • sed умеет тоже что и grep используя адресацию (поиск) по строкам с помощью регулярных выражений в формате /regex/, так что без grep при использовании sed можно обойтись
  • т.к. в файле форматированный текст стоит воспользоваться уменеем cut делить строку по символам (параметр -c)
  • и если уже взялись за sed, то стоит так построить регулярное выражение, чтобы обойтись без cut
  • стоит заметить что города повторяются, поэтому вывод стоит "прогнать" через sort -u
Код: (bash) [Выделить]
sed -n '/SALES /s/.* \(\S\+\) \+[0-9]\+$/\1/p' query1 | sort -uХотя проще выглядит
Код: (bash) [Выделить]
grep -w "SALES" query1 | cut -c 51-59 | sort -uКонечно, современные вычислительные мощности позволяет любые "извраты", но вызов каждой новой команды — новый субпроцесс, поэтому надо стараться обходиться минимумом (одной-двумя командами) 

(Нажмите, чтобы показать/скрыть)

Номер заказа 1-я колонка, сумма 5-я, следовательно сортировать по 5-й, вывести первую
Код: (bash) [Выделить]
sort -k5g query4 | tail -3 | cut -c -3
Код: (bash) [Выделить]
sort -k5gr query4 | grep -o -m3 "^..."Хотя в этом случае grep может через чур…
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 15 Ноября 2014, 16:33:08 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн S9

  • Автор темы
  • Участник
  • *
  • Сообщений: 163
  • Волшебник
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #24 : 15 Ноября 2014, 16:52:47 »
Azure, спасибо большое:) вы очень помогли:)
P.S. А есть ли годная книга по командам Linux, просто вдруг решил получше изучить эту ось:) точнее даже не по Linux, а по bash:) Хочу всякие скрипты писать:)
Burning on the flame
Played the waiting game

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: awk, grep и прочие гадости:)
« Ответ #25 : 15 Ноября 2014, 20:03:44 »
Основы «Advanced Bash-Scripting Guide» (как на меня лучше пока не придумали), и вообще по программам сильно помогает подборка статей Работа в консоли (только читать лучше снизу вверх). А самое простое man команда или команда --help ( иногда весьма занятные опции попадаются ). 
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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