Потом написать функцию для файла в gzip'е, для потока из сокета, для http и для https не забыть! Вспомнил, приходилось хмл из фтп читать - тоже нужна отдельная функция!
а grep умеет шифрованное фильтровать??? (это я про https) не, что касается всех опций к grep - то можно параметром(-ами) передавать, не проблема - и тогда и .gz-файлики тоже можно будет грепать, и сокет в виде io.Reader [golang] использовать - не проблема. в Rust наверное ещё проще с этим - организовать grep(...).option1().option2() и т. д.
Ты же можешь в одну строчку написать "curl https://... | grep"? Ну вот кому-то такое понадобится и он тоже захочет его в базовом наборе.
ну тогда у тебя пример не совсем корректный про grep. grep сам по себе предназначен для фильтрации строк, а уж что ему подают на вход или какой файл передают - не важно. так что или как ты написал, или grep blabla <(curl https://...) - этого за глаза. это удовлетворяет всё из "кому-то может понадобиться", добавляя лишь один/несколько символов. я же сетую за то, как если бы была нужда в новой опции: grep blabla -o https site -- вот если б такое использовалось бы повсеместно (тысячами админов), а никто не делал бы "искаропки".
Ну так чем тебя не устраивают "четыре строчки" 1. открыли файл, поток, сайт, что угодно что умеет отдавать текст 2. погрепали как нам нравиться 3. закрыли открытое в пункте 1 4. вернули результат Не сложно соединить два нужных кирпичика и получить результат. Вместо создания универсального кирпича на все случаи жизни.
там не четыре строчки получится, в том-то и дело. если б обходилось всё 3-4 строчками - разве ж я разводил бы здесь канитель?
Ну если обвесить все обработчиками ошибок, то да больше четырех. Но твоя универсальная функция точно так же потенциально нагенерит кучу возможных ошибок которые так или иначе надо будет обрабатывать в твоем коде.
внутри функции - пускай обрабатывает ошибки. я даже согласен вытаскивать обработку генеральной ошибки наружу того grep(). Возможно, я, "разбалованный" работой в bash, требую чего-то супер-великого? то-то, порой, "великие погромисты" в осадок выпадают, когда видят моё решение проблемы в одну строку, тогда как в их голове там зреет план на 100.000-строчный исходный код. был такой случай - помог одним погромистам наладить шифрованную связь до удалённой базы данных. ? Может, люди просто не знают, что древние сисадмины давны-давно выискивали в текстовых логах регексповые подстроки, выводя всё это дело в пайпу и передавая на другую _стандартную_ программу ... Вот казалось бы - ну херли тут сложного реализовать? str := grep("blabla.*hruhru", "*", "-R -l") пустая строка - это тоже "решение" (пустое множество). Такое впечатление, что в видео-туториалах великие погромисты показывают "как отредактировать файл", а как от-sed-ить туеву хучу файлов, передав функции всего-лишь список имён файлов - это они, видимо, считают overload'ом для новичков... да и не для новичков тоже... типа, "сакральные знания!!!111разрасрас" ok := sed("s@blabla@foofoo@", filelist=[ "file1", "file2", "dir/*", и т.д. ], options= ...) Это ж, если новичок такое увидит - ему ж совсем ни об чё голову ломать не нужно станет!
Ну и лишишь себя возможности обработать разные ошибки на разных этапах. При том, что некоторые ошибки вполне восстановимы, например не открылся файл, но ты то знаешь что у тебя файл на удаленном сервере с ненадежным соединением, делаешь еще одну попытку через интервал и готово. Ты в совершенстве освоил bash но при этом хочешь совсем другую сферу подкрутить под свои знания. Реализуй, выложи на гитхаб какой-нибудь, посмотри что получится. Это разные сферы. Твой sed больше админский, когда подобное нужно программеру то он за короткое время сочинит себе велосипед, что пробежится по списку файлов и сделает внутри каждого файла замену. Незнаю правда, зачем ему это надо.
сисадминов, переходящих с bash на go - не так много в мире сотня? две? но это не значит, что разрабам языка можно останавливаться на наполнении стдлиба примитивной хренью (кроме того, что они сами хотят из крутого оставить). но в целом - я бы даже готов был поучаствовать в группе по созданию такого пакета: golang-for-sysadms. мне сейчас не хватает небольших науськиваний по стилю от опытного гошника.
Обратил тут внимание на URL по которому проверяю оценки сыния. https://krsk19.eljur.ru/journal-app?user=volodin.ls&domain=krsk19&user=volodin.ls&domain=krsk19 Не могу понять зачем приписка выделенная болдом.
наверное нужно передавать веб-бакенду домен (часть доменного имени), который сидит за веб-фронтендом, который обслуживает какие-попалошные доменные имена krsk19.blabla.ru , чтобы бакенд знал, что это обрабатывается домен krsk19 видимо, в бакенд не попадает переменная HOST из хттп-запроса
C запозданием, но всё же... 29 сентября в возрасте 100 лет покинула наш мир создательница языка ассемблера Кэтлин Бут (Kathleen Booth), Кэтлин также была одним из пионеров исследований в области искусственного интеллекта. Про её заслуги: https://www.theguardian.com/technology/2022/nov/10/kathleen-booth-obituary