Имя: Пароль:
1C
 
Анализ ТЖ через perl
0 breezee
 
03.05.24
22:01
Подскажите, пожалуйста, где прочитать про анализ текста с помощью регулярок?
Вот статья с ИТС
https://its.1c.ru/db/metod8dev/content/5927/hdoc
Понятно +- до строки
cat file | sed -r 's/.{8}-.{4}-.{4}-.{4}-.{12}/{GUID}/g' | sed -r 's/\:[0-9]{4,5}/{PORT}/g' | sed -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{ADDR}/g'

Что это значит?

"Автор считает более удобным применять конструкцию

Копировать в буфер обмена
perl -pe 's/найти/заменить/'"

Автор не написал где про это прочитать. Это тупо не гуглится. Что значит -pe?

Изучаю материал экзамена к эксперту по тех. вопросам, если кому интересно. Но это не важно, просто ТЖ надо как-то читать. У нас сейчас сервис Гилева и он справляется (спасибо Вячеслав, если Вы иногда посещаете этот форум), но, на пример, в нем нельзя посмотреть нагрузку на диск, а нам это, возможно, надо
1 Asmody
 
03.05.24
22:16
2 breezee
 
03.05.24
22:18
(1) большое спасибо
Да не гуглилось просто и все, я загуглил perl -pe и ничего не нашлось. Большое спасибо ещё раз, изучу
3 Garykom
 
03.05.24
22:21
(0)
Что значит -pe?

вероятно он допускает объединение аргументов
"perl -pe" = "perl -p -e"
или тупо ошибка/опечатка
4 Asmody
 
03.05.24
22:22
Если плаваем в регулярках, идём сюда https://regex101.com/ , вставляем регулярку (кусок строки между /вот-это/ ) в поле REGULAR EXPRESSION, справа в поле EXPLANATION читаем расшифровку
5 Asmody
 
03.05.24
22:23
(3) допускает. perl писался в те времена, когда байты считали
6 breezee
 
03.05.24
22:25
(4) / An unescaped delimiter must be escaped; in most languages with a backslash (\)
Такое пишет когда вставляю s/.{8}-.{4}-.{4}-.{4}-.{12}/{GUID}/g' | sed -r 's/\:[0-9]{4,5}/{PORT}/g' | sed -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{ADDR}/g
7 breezee
 
03.05.24
22:26
(5) А может что покруче уже есть? Только это должно быть доступно на эксперте по Тех. вопросам)
8 Garykom
 
03.05.24
22:27
9 Asmody
 
03.05.24
22:33
(6) не надо всё вставлять.
в строке
cat file | sed -r 's/.{8}-.{4}-.{4}-.{4}-.{12}/{GUID}/g' | sed -r 's/\:[0-9]{4,5}/{PORT}/g' | sed -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{ADDR}/g'


4 команды, объединенные через вертикальную палку (или pipe-line), что значит, что выход первой команды поступает на вход следующей.

cat читает файл и вываливает его на стандартный выход
это подхватывает sed и пропускает через регулярку ( -r ), которая говорит "в каждой строке замени ( s/ ) все, что соответствует регулярке .{8}-.{4}-.{4}-.{4}-.{12} на строку {GUID}, делай это для всех вхождений ( флаг /g )". результат будет выведен на стандартный выход
тут его подхватит второй sed и пропускает через следующую регулярку,
а потом третий sed через свою
10 breezee
 
03.05.24
22:34
(8) Крутяк, кстати. Вопрос на сколько это быстро работает. Если это реально можно на экзамене и быстро работает можно загнать в ТЧ нового документа/справочника новой базы, сгруппировать, обработать на родном языке.
Но (мое мнение) скорее всего раз об этом не пишут как об. оф инструменте - на экзамене скажут что я сделал не правильно или окажутся какие-то подводные камни. Имел ввиду типо библотек может каких на линуксе, типо с функцией "СделатьВсеХорошо(строкаДляПарсинга)
11 Asmody
 
03.05.24
22:35
(7) обработчик текстов из командной строки покруче perl?
пожалуй что нет
12 Asmody
 
03.05.24
22:36
(10) на экзамене тебя посадят за машину с голым линуксом и скажут "вперёд!"
13 breezee
 
03.05.24
22:36
(9) Мегасуперкурто! Спасибище!!! действительно работает. Даже понятно стало)
14 breezee
 
03.05.24
22:38
(12) Ну да, вот об этом и беспокоюсь( Я не просто так пришел к perl с ничего, это "best practics" как я понял)
Спасибо
15 Garykom
 
03.05.24
22:40
(12) голый linux подразумевает что perl'а может и нету
а если есть apt update|install то можно воткнуть что угодно
16 breezee
 
03.05.24
22:41
(15) Вот не понятно, но я понял инета не будет, а перл будет
17 Garykom
 
03.05.24
22:42
материал экзамена к эксперту по тех. вопросам

А потом будут удивляться как это собес прошел, серты 1С есть - а работать никак...
18 Garykom
 
03.05.24
22:43
(16) Ты понимаешь что в реальной работе "нет инета" - это форсмажор и работа встала
Учить наизусть все команды - это изврат
Пользоваться man'ами - тоже изврат при наличии инета
19 Garykom
 
03.05.24
22:44
(18)+ Но и быть полным "гуглером" тоже изврат
Надо хотя бы базу иметь
20 Asmody
 
03.05.24
22:49
(15) представить нынешний линукс без перла и питона достаточно сложно. разве что LFS, да и то вряд ли.
слишком много системного на питоне и перле.
21 Asmody
 
03.05.24
22:53
А для "под винду" можно powershell почитать. Например, про Select-String https://learn.microsoft.com/ru-ru/powershell/module/microsoft.powershell.utility/select-string?view=powershell-7.4
22 breezee
 
03.05.24
22:53
(17) Я не претендую на эксперта, меня устраивает текущая работа. Серт нужен только франчу. За него обещали денег поднять. Работать адутором я не буду. Как минимум мне это не очень интересно. Оптимизировать некоторые моменты интересно, но мой опыт - что большинство оптимизаций при нормальной команде, которая не пишет запросы в цикле - это в первую очередь оптимизация бизнес логики, а уже потом - оптимизация кода. То есть если сократить 10 запросов в цикле внутри 10 документов в одном пакете - получишь ускорение уловное 10%, а если пакет документов заменишь на 1 и еще сделаешь формирование отложенным - сократишь уже значительным. Или, допустим, сделать систему в которой запрос будет сразу с отбором по первому измерению, потому что так будет работать для бизнеса "нормально" - это немного другое. Хотя, стоит отметить что без курсов я бы и не знал про то что, на пример, можно оценить нагрузку на проц по ТЖ или собрать экспешены по ТЖ. В общем, как и по всем экзаменам - он показывает не то что ты что-то знаешь, а то что ты просто это сдал. Вот, на пример, алгоритм распределения по ФИФО с экзамена по спеца постоянно использую в своей работе. Хотя бытует мнение что экзамен по спецу "не за чем".
Вообще, хотел бы экзаен более интересный с точки зрения бизнеса. Админы есть везде, на пример, на больших конторах и мне не очень интересно как у них все работает, у меня тупо на это времени нет на работе
23 Asmody
 
03.05.24
22:56
(22) но ситуации, когда база внезапно тормозит на ровном месте из-за того, что СКД твой запрос как-то не так вывернула, встречается не только у "больших".
24 Garykom
 
03.05.24
22:59
(22) >при нормальной команде, которая не пишет запросы в цикле
ты не поверишь но стандартная БИД - почти все функции одиночные - в итоге приходится или сплошные запросы в цикле (точнее в цикле вызовы функций БИД а внутри запросы)
или переписывать все нафуй самому - а это трудозатраты - заказчик идет только когда "все совсем тормозит"
25 breezee
 
03.05.24
23:03
(23) Ну есть статья про оптимизации запросов, мое мнение что в большинстве случаев ее хватает. Тем не менее я полностью согласен с Вашим мнением и такие кейсы тоже надо решать. Но я не претендую на чужой хлеб (как минимум пока).
(24) Да я понимаю. Ну, тут сказать нечего, к сожалению. Понимаю...
26 breezee
 
03.05.24
23:05
Всем еще раз спасибо за ссылке. Чтобы тему не потерли за оффтоп больше не буду отвечать, пойду спать. По моему часовому поясу уже поздно. Еще раз спасибо, особенно за https://regex101.com/
27 palsergeich
 
04.05.24
02:24
(0) Вообще есть случаи сдачи экзамена чисто на ЦУП, без регулярок.
Если цель именно его сдать - то подучить лишним не будет, да.
Но в реальной жизни что бы кто то строчил скрипты на перле, я если честно еще не видел.
28 Asmody
 
04.05.24
21:36
Вот, нашел у себя в закладках
https://www.youtube.com/live/pV8wgI8haf4?si=bFqHc_Mm1HdnEnVq
29 breezee
 
04.05.24
22:02
(28) Большое спасибо!
30 d4rkmesa
 
04.05.24
22:11
(24) В БИД еще забавные штуки, помимо одиночных вызовов, это когда логика работы зависит от типа параметра (одиночный или список). К примеру, передали один id из интегрируемой системы - нормально работает, возвращает данные. Передали массив id - не возвращает ничего, зато запускается логика по автообновлению каких-то вспомогательных данных. ) Первый раз столкнулся, чтобы кто-то таким образом api разрабатывал.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой