Size: a a a

2020 December 17

g

gibzer in use Perl or die;
Sergey Zhmylove
А там где undef -- две табуляции?
Да, это подойдёт.
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
Да, это подойдёт.
Как будешь измерять время?
источник

g

gibzer in use Perl or die;
Sergey Zhmylove
Как будешь измерять время?
$ time script file.log
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
$ time script file.log
$ cat script
#!/bin/sh
tr \\t \\n < "${1?}" |sed -e 's/^\(a\|c\|e\|g\|i\)\(=\|$\)//;t;d' |paste - - - - -
источник

SZ

Sergey Zhmylove in use Perl or die;
Попробуй пока это :)
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
$ time script file.log
Или порядок a,c,e,g,i может меняться? Типа в одной строке в алфавитном, а в другой -- в обратном?
источник

g

gibzer in use Perl or die;
Sergey Zhmylove
Или порядок a,c,e,g,i может меняться? Типа в одной строке в алфавитном, а в другой -- в обратном?
Лог выглядит так:
log a=b e=f c=d i=j g=h

А мне надо, допустим, получить в данный момент значения g и a.
источник

g

gibzer in use Perl or die;
Но в каждой строке поля следуют одинаково.
источник

SZ

Sergey Zhmylove in use Perl or die;
Ясно, ну ты попробуй скрипт выше. Возможно он будет быстрее всего работать
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
Лог выглядит так:
log a=b e=f c=d i=j g=h

А мне надо, допустим, получить в данный момент значения g и a.
Второй вариант: perl -lne 'print join "\t", /(?:a|c|e|g|i)(?:=(\S+))?/g' file.log
источник

g

gibzer in use Perl or die;
Оба варианта выдают в произвольном порядке результат. В общем, я понял, тут либо оптимизация и затачивание под определённый формат, либо удобство самого скрипта (просто задал имена полей в нужной последовательности и всё). Спасибо за помощь! Пару новых идей для себя взял.
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
Оба варианта выдают в произвольном порядке результат. В общем, я понял, тут либо оптимизация и затачивание под определённый формат, либо удобство самого скрипта (просто задал имена полей в нужной последовательности и всё). Спасибо за помощь! Пару новых идей для себя взял.
Так значит порядок всё же разный
источник

SZ

Sergey Zhmylove in use Perl or die;
perl -lne '$::h{$1} = $2 while /\b(a|c|e|g|i)\b(?:=(\S+))?/g; print join "\t", @::h{qw(a b)}' file.log
источник

SZ

Sergey Zhmylove in use Perl or die;
Выведет только a, b
источник

g

gibzer in use Perl or die;
Sergey Zhmylove
Так значит порядок всё же разный
Не, в лолге поля a b c d, а мне надо d b. В такой последовательности.
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
Не, в лолге поля a b c d, а мне надо d b. В такой последовательности.
perl -lne '$::h{$1} = $2 while /\b(b|d)\b(?:=(\S+))?/g; print join "\t", $::h{d}, $::h{b}' file.log
источник

g

gibzer in use Perl or die;
Что за хитрая конструкция $::h{$1}, где почитать?
источник

SZ

Sergey Zhmylove in use Perl or die;
gibzer
Что за хитрая конструкция $::h{$1}, где почитать?
Эээ, обычное имя переменной
источник

SZ

Sergey Zhmylove in use Perl or die;
Сигил пакет имя скобки
источник

g

gibzer in use Perl or die;
А, думал что-то особенное.
источник