LINUX.ORG.RU

Состоялся релиз Miller 5.3.0

 , , , miller,


5

3

Miller, подобие awk, sed, cut, join, и sort для индексированных по имени данных, таких как CSV и табличный JSON, теперь версии 5.3.0.

Новые возможности

  • Опция "--skip-comments" теперь позволяет отфильтровывать строки комментариев во входных строках, которые начинаются с символа '#'. Опция "--skip-comments-with X" позволяет задать строку комментарий X. Комментарии поддерживаются только в начале строк. Опции "--pass-comments" и "--pass-comments-with X", наоборот, позволяют обрабатывать строки с комментариями.
  • Глагол count-similar теперь позволяет вычислять размеры кластеров по кластерным меткам.
  • В то время как DSL арифметика Miller'а развилась от 64-целочисленной до с плавающей запятой двойной точности, в нём также появились операторы целочисленной арифметики: .+ .- .* ./ .// .
  • Новая функция bitcount. Например,
    echo x=0xf0000206 | mlr put '$y=bitcount($x)'
    выведет
    x=0xf0000206,y=7
  • Опция "-T" теперь является алиасом для "--nidx --fs tab", а опция "-t" является алиасом для "--tsvlite".
  • Математические константы Пи и e переименованы из PI и E в M_PI и M_E соответственно.

Также была улучшена документация и устранены 5 ошибок.

>>> Скачать

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Спасибо за ссылку для скачивания без регистрации и СМС. Мне, как пользователю LFS, это очень полезно.

anonymous
()

Хм, вроде годно и нужно

MrClon ★★★★★
()

По идее, годно. Идея универсального инструмента для работы с табличными данными очевидна.

Оно полностью поддерживает спецификацию CSV, включая экранирование, кавычки и др.?

P.S. Название вот только нифига не очевидное, в отличие от того же sed. Через полгода или даже год мне этот инструмент понадобится, и я буду судорожно вспоминать, как же оно называлось, и наверняка не вспомню...

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

в отличие от того же sed

ну да, с ошибкой написанное слово «red» как название утилиты обработки текстовых данных это так очевидно

next_time ★★★★★
()
Ответ на: комментарий от MrClon

Так-то я отлично помню его название, ибо использую время от времени, но предположим, он мне нужен нечасто. Как я должен догадаться, что первая буква s == stream, а не sex, например?

Ну или, скорее, наоборот: мне нужен инструмент для автозамены в тексте, как мне догадаться, что он называется stream editor? Особенно, учитывая, что sed - не потоковый, т.к. есть опция -i и не редактор, т.к. не интерактивен?

next_time ★★★★★
()
Ответ на: комментарий от hobbit

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

val-amart ★★★★★
()
Ответ на: комментарий от next_time

А что, Sex EDitor тоже неплохое название, выражает восторженное отношение к удобству и параметрам программы. :)

" Software is like sex: it's better when it's free" (приписывается дядюшке Линусу).

hobbit ★★★★★
()

Выглядит как крайне годная вещь, никогда не приходило в голову, что кто-то мог запилить нормальную утилиту для таких дел, постоянно ковыряюсь с cut, bc и прочими.

Спасибо за информацию.

pon4ik ★★★★★
()
Ответ на: комментарий от anonymous

Чем эта утилита похожа или отличатеся от GNU datamash? Или это разные вещи?

В datamash простые вещи, то есть колонка = одна из предопределённых операций. miller — полнофункциональный язык.

Посмотри примеры внизу https://github.com/johnkerl/miller/.

monk ★★★★★
()
Ответ на: комментарий от hobbit

Через полгода или даже год мне этот инструмент понадобится, и я буду судорожно вспоминать, как же оно называлось, и наверняка не вспомню

Даю установку: Образ Леонида Броневого разбирающего бумажки за столом, в то время, как он приглашает Штирлица на беседу.

anonymoos ★★★★★
()
Ответ на: комментарий от ptah_alexs

Чем GNU R не нравится для этой цели?

А в нём разве можно делать однострочники типа:

$ mlr --icsv --opprint --barred \
  put '$tiv_delta = $tiv_2012 - $tiv_2011; unset $tiv_2011, $tiv_2012' \
  then sort -nr tiv_delta flins.csv 
+------------+-------------+----------------+
| county     | line        | tiv_delta      |
+------------+-------------+----------------+
| Duval      | Residential | 1053663.450000 |
| Palm Beach | Residential | 682507.670000  |
| St. Johns  | Residential | 5618.410000    |
| Highlands  | Residential | -1792.200000   |
| Seminole   | Residential | -2041.840000   |
| Highlands  | Residential | -3248.500000   |
| Miami Dade | Residential | -82673.770000  |
| Miami Dade | Commercial  | -200047.590000 |
+------------+-------------+----------------+

?

monk ★★★★★
()
Ответ на: комментарий от German_1984

Не только «было», но и сейчас есть. Проект GNU ed продолжает развиваться. Последний релиз был год назад.

Также я в прошлом году прикручивал интерфейс на readline к однобайтному ed'у 1987-го года: ed 1987-го года снова в строю и с улучшениями .

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Через полгода или даже год мне этот инструмент понадобится, и я буду судорожно вспоминать, как же оно называлось, и наверняка не вспомню...

ничо, я тебе напомню

а вообще как вариант можно запиоминать все все все чисто семантически и использовать гугол поиск, как записную книжку

anonymous
()
Ответ на: комментарий от next_time

Как я должен догадаться, что первая буква s == stream, а не sex, например?

Из первого же абзаца в руководстве?

GNU 'sed'
*********

This file documents version 4.4 of GNU 'sed', a stream editor.

Ну или, скорее, наоборот: мне нужен инструмент для автозамены в тексте, как мне догадаться, что он называется stream editor?

Вам нужен графический текстовый редактор, как вам угадать, что он называется Emacs? Вам нужен редактор для растровых картинок, как как вам угадать, что он называется GIMP?

Особенно, учитывая, что sed - не потоковый

ЛПП.

т.к. есть опция -i

Которая отнюдь не превращает его в файловый редактор, даже будучи включенной, ибо это очень кривой костыль, который следовало бы выжечь.

Zmicier ★★★★★
()
Ответ на: комментарий от German_1984

sed - это потокавый (неинтерактивный) редактор

Поточный и неинтерактивный — это не антонимы.

Антонимы: поточный / файловый; неинтерактивный / диалоговый / визуальный.

Zmicier ★★★★★
()
Ответ на: комментарий от German_1984

(буквоед-mode +1)

совместимый с ed по системе команд.

Да нет, как могут быть совместимы принципиально разные программы? Подражающий его системе команд.

(буквоед-mode -1)

Было такое чудо на заре unix.

Оно по-вашему куда-то делось что ли?

Zmicier ★★★★★
()
Ответ на: комментарий от hobbit

Название как название, вполе подходящее. Если жалуешься на память (а в наше время это не редкость), запиши в файлик. Уж тэги-то для будущего себя сможешь придумать? Я так лет десять делаю уже, очень удобно.

anonymous
()
Ответ на: комментарий от kirk_johnson

Очень полезная опция.

Во-первых, не очень. А во-вторых, не все, что полезно, не вредно́. Что вводит в заблуждение, то вредно́.

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

Во-первых, не очень.

$ sed -i 's/FOO/BAR/' file

versus

$ sed 's/FOO/BAR/ < file > file.new
$ mv file.new file

Feel the difference.

А во-вторых, не все, что полезно, не вредно́. Что вводит в заблуждение, то вредно́.

Чем тебя опция в заблуждение вводит?

P.S. Господи, я согласен с saahriktu -____-

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от kirk_johnson

Feel the difference.

Ну я это и говорю, что не очень полезная.

Чем тебя опция в заблуждение вводит?

Я уже не помню, ввела ли она в заблуждение меня. Но вот выше вы можете найти пример товарища next_time. И вообще это не редкость. Что не удивительно, поскольку ее врет она сама, своим именем: --in-place.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

sed - это потоковый (неинтерактивный) редактор

Поточный и неинтерактивный — это не антонимы.

Естественно не антонимы. В скобках указывают синонимы.

Я имел ввиду, что ed - интерактивный, файловый, а sed - неинтерактивный, поточный.

German_1984 ★★
()
Ответ на: комментарий от Zmicier

как могут быть совместимы принципиально разные программы?

Также как совместимы интерактивный и неинтерактивный интерпретаторы ЯПВУ. Зачастую они вообще одним бинарником реализуются. Аналогично, что в ed, что в sed удалить 5-ю стрку делается командой 5d.

Оно по-вашему куда-то делось что ли?

Оно, imho, уступило место vi

German_1984 ★★
()
Ответ на: комментарий от German_1984

Оно, imho, уступило место vi

vi построен на основе редактора ex - расширенной версии ed'а. И тот же vim умеет работать в режиме редактора ex без визуального режима.

В свою очередь, оригинальный ed никуда не исчез (см. выше).

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от monk

Спасибо. Но вот это

полнофункциональный язык

Бяда… Опять изучать микроязычок. Sed, awk, jq, тысячи их.

anonymous
()
Ответ на: комментарий от hobbit

Идея универсального инструмента для работы с табличными данными очевидна.

awk же есть, куда ж еще универсальнее

annulen ★★★★★
()
Ответ на: комментарий от next_time

и не редактор, т.к. не интерактивен

Тогдя для тебя станет откровением существование такой штуки как ed.

anonymous
()

Шок, саахрикту ведет свой ЖЖ теперь и в новостях.

valmanner
()
Ответ на: комментарий от monk

awk не умеет csv и красивый вывод табличек

но это легко дописывается :)

annulen ★★★★★
()
Ответ на: комментарий от kirk_johnson

на самом деле это не in place

--in-place не редактирует файл, а сохраняет вывод во временный файл, а потом затирает оригинал.

То есть враньё в двух местах - в названии опции и в описании опции в man.

У меня от этого брат умер не работал скрипт выключения selinux с такой строкой

sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux

Потому что:

1) /etc/sysconfig/selinux это символическая ссылка на /etc/selinux/config

2) sed её подменял обычным файлом

3) ядро на старте читал старую версию из /etc/selinux/config

Ну а я был весьма удивлён, почему после ребута getenforce мне не выдаёт disabled, хотя в /etc/sysconfig/selinux всё хорошо.

Ну и проблемы другого характера могут быть. Например вы sed'ом редактируете большой файл, размер которого больше, чем у вас свободного места на диске ...

gorilych ★★
()
Ответ на: комментарий от Zmicier

Вам нужен графический текстовый редактор, как вам угадать, что он называется Emacs?

открыть меню, там он называется «текстовый редактор Emacs»

что он называется GIMP?

меню->Графика->Gimp Image Editor

Из первого же абзаца в руководстве?

это если уже знаешь название

next_time ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.