LINUX.ORG.RU

Сообщения gedisdone

 

Адский разбор вывода ps aux регулярками

sed не распознаёт обратные ссылки больше 9. Таким образом, код

ps aux | sed -r 's/([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +(.*)/\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11/g'
не работает так, как предполагалось. Последние колонки отображатся как USER0, USER1. Perl тоже не видит дальше девятой обратной ссылки. В итоге команда
ps aux | perl -ne 's/([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +(.*)/\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11/g; print $_' 
просто ничего не выдаёт дальше девятой колонки.

Зато сработала команда

ps aux | perl -ne 'm/([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +(.*)/; print $1 . ";" . $2 . ";" . $3 . ";" . $4 . ";" . $5 . ";" . $6 . ";" . $7 . ";" . $8 . ";" . $9. ";" . $10 . ";" . $11 . "\n"' 

Я понимаю, что должны быть более лёгкие способы реализации, укажите, пожалуйста.

 , , ,

gedisdone
()

PowerShell на работе и в быту

Если под Линукс есть PowerShell, можно попробовать сделать с ним что-нибудь полезное. Какой аналог у команды ps aux | awk '$1 !~ /root/ {print $0}'?

ps aux | sed -E 's/ +/\t/g' | ConvertFrom-Csv -Delimiter "‛t" | ? -Property {user} -ne root
Данный код выдаст все объекты (процессы), у которых пользователь не является root. Средствами самого повершелла команда должна была быть выглядеть как Get-Process -IncludeUserName | ? -Property username -ne root.

Обращение к sed'у можно заменить тоже повершелловскими средствами. Тогда команда приобретёт вид

ps aux | % {$_ -replace " +","‛t"} | ConvertFrom-Csv -Delimiter "‛t" | ? -Property {user} -ne root

Действияя проводились под PowerShell 7 на Debian 10.

 , ,

gedisdone
()

WebAssembly на работе и дома

Как широко сейчас используется WebAssembly? Я помню, что Java-апплеты в своё время закапывали, что проприетарно и небезопасно, потому что исполняется сторонний двоичный код, сейчас же почему-то сторонний двоичный код вопросов не вызывает. Ну и спецификация, я, так понимаю, открытая.

Как может взаимодейтсвовать wasm-приложение со страницей? Апплеты представляли отдельное окошко внутри страницы, а сейчас? Взаимодействуют ли они с содержимым страницы, как работают JS-скрипты?

 , ,

gedisdone
()

strings -e l в поиске кириллицы в UTF-16LE

Есть файл следующего содержания:

Русский
English
mixed_символы

Если перевести его в UTF-16LE iconv -f UTF-8 -t UTF-16LE file.txt > file16.txt, то strings -e l file16.txt выдаст:

English
mixed_

А ожидалось, что выдаст весь файл (как выдаёт strings -e S file.txt). ЧЯДНТ? Файл выше приведён для примера.

 , , ,

gedisdone
()

pkg install pango / make install pango в FreeBSD 12.1

При установке pango через pkg install pango openbox не запускается, выдаёт ошибку

ld-elf.so.1: /usr/local/lib/libpangoft2-1.0.so.0: Undefined symbol "FcWeightFromOpenTypeDouble"
При установке через make install всё запускается нормально.

Опенбокс пытается обратиться к версии pango 1.0? Что происходит не так?

 , ,

gedisdone
()

Как исправно массировать отдельные пиксели?

Тема со схожим названием напомнила о том, что у меня была идея написать обработчик изображений на awk, который находил бы предварительно выбранные шаблоны. Мной создавалась тема, в которой выражался вопрос о возможности существования готового решения, но такого не нашлось. Что ж, пришлось писать для себя.

Непосредственно awk тут не так много, но, тем не менее, код работает так, как мне требовалось.

Репозиторий: https://gitlab.com/gedisdone/awk-ipr

 , ,

gedisdone
()

Python или NodeJS

Сейчас, как я вижу, NodeJS становится всё популярнее. В чём его плюсы? Что у него один и тот же язык с браузером? В npm много пакетов, наверно, применение JS сейчас очень широкое.

Или обработать генерируемую через JS веб-страницу. Наверно, лучше в таком случае использовать тот же самый язык? У безголового Firefox есть библиотеки для работы с питоном или NodeJS, но чтобы можно было работать с ним через bash, мне ничего не удалось найти.

 , ,

gedisdone
()

gawkextlib в репозиториях Дебиана

Я не знаю, как работает приём пакетов в репозитории Дебиана, однако меня удивило что, судя по этому письму энтузиазма такая инициатива не вызвала.

Или gawkext - вещь недавняя, или ещё что - так или иначе, пришлось навернуть свежей Убунты, чтобы в системе был gawk 4.2, который требовался для парсера JSON.

А в каком-либо дистрибутиве этот gawkextlib присутствует? Поиск не дал ответа.

 , ,

gedisdone
()

Брать ли новый трекбол?

Довольно долгое время работаю с Logitech Marble Mouse. В последнее время замечаю, что шарик ходит довольно туго, силиконовая смазка не спасает, точно позиционировать курсор стало неудобно. Шарик ронялся.

Что лучше делать в сложившейся ситуации?

 

gedisdone
()

Проворот фарша

Плоские интерфейсы вроде уже неинтересны, когда ждать возвращения Win9x?

 , ,

gedisdone
()

Толстый web-сервер или толстый web-клиент

Что определяет выбор сабжа? Раньше вычисления уносились на сервер и он отдавал готовую страничку, сейчас же сваяют три мегабайта скриптов для показа одной строки. Идеологически второй способ правильным не считаю, но, наверно, должны быть ситуации, в которых такой подход оправдан. Или нет?

 , ,

gedisdone
()

DE на WinAPI

Насколько реально сделать окружение для X на основе WinAPI для запуска под Wine, чтобы оно давало и курсор, и оконный менеджер и т.п.? Будет ли такое ПО запускаться под Windows?

 , ,

gedisdone
()

csh/tcsh в 2020

Имеется ли практический смысл его учить в 2020? Насколько актуально эссе «csh Programming Is Considered Bad»?

 , ,

gedisdone
()

Web-браузер с возможностью сохранения страниц

Есть под андроид сабж? Firefox не умеет сохранять страницы на локальном устройстве, да и их открытие несколько нетривиально - к карте памяти доступа нет.

 , ,

gedisdone
()

Wayland и удалённый рабочий стол

Насколько я знаю, сейчас в X Window библиотеки типа GTK и Qt просто посылают готовые растровые картинки вместо кнопок и т.п., а VNC занимается отправкой картинки рабочего стола.

Была ли решена эта проблема в Wayland? Возможно ли по подобию RDP посылать примитивы вместо картинок на удалённое место?

 , ,

gedisdone
()

join -i не игнорирует регистр кириллицы в UTF-8

Есть два файла, 1.csv

Москва
Новосибирск
Санкт-петербург
и 2.csv
москва
Новосибирск
Санкт-Петербург

LC_ALL=ru_RU.UTF-8 sort -f выдаёт аналогичные файлы в одинаковом порядке.

LC_ALL=ru_RU.UTF-8 join -i -t " 1.csv 2.csv не отрабатывает, выдаёт ошибку

 join: 2.csv:2: is not sorted: Новосибирск

При конвертации в восьмибитную кодировку всё работает, как ожидается. Практичнее, правда, использовать sed 's/.*/\L&/g' или tolower() из awk.

Вопрос: это ошибка локали или ошибка реализации join?

 , ,

gedisdone
()

Графическая система как обмен командами

На одном конце - дисплей, который принимает команды типа RECT 100 100 200 200 и отрисовывать на экране. На другом - монитор, который читает файл графического устройства ввода и фиксирует изменения координат этого устройства. Эти изменения передаются приложению между монитором и дисплеем, который в зависимости от принятых изменений графического устройства ввода отправляет команды дисплею.

Насколько такая конструкция жизнеспособна?

 , ,

gedisdone
()

Извлечение диапазона символов из шрифта

Как возможно пропатчить шрифты, чтобы в них добавить или извлечь определённый диапазон символов?

У fontforge имеется командный режим - с его помощью можно автоматизировать этот процесс?

 ,

gedisdone
()

Непосредственное обращение к видеопамяти

Во времена DOS можно было непосредственно обратиться к A000:0000 и рисовать спокойно на экране.

А как это происходит под Linux? Знаю про DirectFB, но он не везде есть, и, насколько мне известно, заброшен. Как обращаться напрямую к видеопамяти? В современных картах стоят сотни мегабайт - и к ним можно получить доступ?

 , ,

gedisdone
()

Вывод графики в Emacs

Так как Emacs - универсальная платформа, возникла мысль о сабже. Однако чтение руководства для GNU/Emacs показало, что задача эта нетривиальная. Может, я не то ищу? Мне бы просто окно определённого размера в Emacs, пикселями которого я могу управлять как массивом байт.

 , ,

gedisdone
()

RSS подписка на новые темы