собрать и сохранить совпадающие целые числа из файла

gpg попытается загрузить ключи из ~/.gnupgи не будет отображать «Все ключи в системе», поскольку у каждого пользователя есть отдельная связка ключей. Ты не сможешь это сделать.

В вашем случае приложение gpgпопытается перечислить ключи из www-data, phpили имя пользователя, которому принадлежит процесс php.

Вы можете изменить расположение клавиш, манипулируя переменной окружения GNUPGHOMEили HOMEили задав для --homedirзначение gpg. Эта опция доступна не во всех версиях gpg.

0
26.08.2019, 02:49
3 ответа

Я бы предложил использовать awk для всего этого:

$ awk '
    BEGIN {OFS="\t"; print "x1", "x2", "response_fn_1"} 
    $2 == "x1" {x1 = $1} 
    $2 == "x2" {x2 = $1} 
    $2 == "response_fn_1" {print x1, x2, $1}
' file | column -t
x1                 x2                 response_fn_1
-1.8961789208e+00  -1.3853582017e+00  2.4892772154e+03
3.7988695564e-01   1.5859091288e+00   2.0820416317e+02

Канал через column -tпредназначен только для красивой -печати -сам вывод awk представляет собой табуляцию -с разделителями

2
28.01.2020, 02:29

Если ваш файл результатов называется «входным»

for i in x1 x2 response_fn_1 ; do echo $i > $i; grep $i input | awk '{print $1}' >> $i ; done ; paste x1 x2 response_fn_1 | column -t

дает:

x1                 x2                 response_fn_1
-1.8961789208e+00  -1.3853582017e+00  2.4892772154e+03
3.7988695564e-01   1.5859091288e+00   2.0820416317e+02

Внимание! Это деструктивно создает файлы с именами x1 x2 и response _fn _1 в каталоге, в котором вы работаете. Если это настоящие файлы, они будут перезаписаны.

0
28.01.2020, 02:29

Мы можем сделать это, используя Perl в режиме slurp, и разбить файл на массив вокруг строки, начинающейся с Begin (вы можете украсить его в соответствии с вашими требованиями ). Затем из каждого элемента массива, сохраняя первый (нуль в Perl ), мы обнаруживаем строки только с двумя полями и сохраняем их в хеше %h с ключом на втором поле => значение как первое поле. Это мы получаем, обращая совпадения, которые мы получаем из регулярного выражения. А потом печатаем.

$ perl -F'/^Begin.+$/m' -ln -0777 -ae'
    ($,, @A) = ($", qw/x1 x2 response_fn_1/);
    for(@F) {
        my %h = reverse /^\s*(\S+)\s+(\S+)$/mg;
        print(@A),next if ! $a++;
        print @h{@A};
    }
  ' initial.log | column -t
0
28.01.2020, 02:29

Теги

Похожие вопросы