Как проверить ядро Linux?

жемчугу назвали модуль Scalar::Util (включенный с жемчугом с тех пор v5.8), которому назвали полезную функцию looks_like_number(), который может использоваться, чтобы обнаружить, является ли поле числом или нет.

looks_like_number не прекрасно, но довольно хорош.

Пустая схема простой программы жемчуга, чтобы сделать, что Вы хотите, могла бы выглядеть примерно так:

#! /usr/bin/perl

use Scalar::Util qw(looks_like_number);

while(<>) {
  chomp;
  my @fields=split("\t");
  foreach my $f (0..scalar @fields-1) {
    if (looks_like_number($fields[$f])) {
      $fields[$f] += 42;
      $fields[$f] *= 7;
      $fields[$f] = sprintf("%.2f",$fields[$f]);
    }
  }
  print join("\t",@fields),"\n";
}

Если дали Ваши демонстрационные данные выше, как введено, это печатает это:

file name   size    owner    
file1.txt   380.41  root
file2.txt   295.21  user1
file3.txt   2016.00 user2
file4.txt   86709.00    root
file5.txt   441.00  user3
file6.txt   2016.00 user1
file name   owner   last modified   last accessed
text4.txt   root    383.11  388.71
text5.txt   user3   401.33  532.00
file1.txt   root    455.00  511.02

Вот другая версия сценария, который использует Математику:: BigFloat для всех вычислений, округляя десятичные числа к 2 цифрам.

#! /usr/bin/perl

use Scalar::Util qw(looks_like_number);
use Math::BigFloat;

while(<>) {
  chomp;
  my @fields=split("\t");
  foreach my $f (0..scalar @fields-1) {
    if (looks_like_number($fields[$f])) {
      my $BF = Math::BigFloat->new($fields[$f]);
      $BF->badd(42);
      $BF->bmul(7);
      $BF->ffround(-2);

      $fields[$f] = $BF->bstr();
    }
  }
  print join("\t",@fields),"\n";
}

пример ввел:

file name   owner   last modified   last accessed
text4.txt   root    12.73   13.53
text5.txt   user3   15.3333 34
file6.txt   root    903709792518875002.42857142857142857142 903709792518875002
file7.txt   root    6659166111488656281486807152009765625   539422123247359763587428687890625

вывод:

file name   owner   last modified   last accessed
text4.txt   root    383.11  388.71
text5.txt   user3   401.33  532.00
file6.txt   root    6325968547632125311.00  6325968547632125308.00
file7.txt   root    46614162780420593970407650064068359669.00   3775954862731518345112000815234669.00
3
26.05.2015, 23:05
2 ответа

3.2.0 версия исходного кода, используемого для компиляции этого ядра. Они могут быть четырьмя числами долго (например, 2.6.32.55) указание на уровень установки патча на той версии. Однако эти четыре системы цифры только использовались для ядер версии 2.6, запускающихся в 2.6.8. Т.е. это не используется с 3.x ядра, которые являются этими 3 числами, release-major-minor. Отметьте тонкое различие от трех систем главного незначительного уровня установки патча числа, наиболее часто используемых с программным обеспечением.

-24-generic указывает на уровень установки патча и конфигурацию, используемую дистрибутивом, 24 являющийся их уровнем установки патча, и универсальный являющийся конфигурацией, используемой в компиляции. Этот уровень установки патча не обязательно сбрасывает/изменяет для различных исходных версий ядра; дистрибутив любой применяет неизменные патчи (так, например, 3.2.1-24-generic) или они увеличивают уровень установки патча (3.2.1-25-generic).

Старшими значащими аспектами является число исходной версии и стиль конфигурации. Позже важно, потому что это указывает на существенные различия в способе, которым ядро было на самом деле настроено для сборки.

Это не показывает, какая архитектура ядро было создано для - например, x86_64 - но uname -m вывод делает.

5
27.01.2020, 21:10

Это означает, что у Вас есть ядро Linux на 64 бита. И версия 3.2.

Точно это - 24-й выпуск этого ядра. И это - универсальное. Это означает, что ядро может использоваться для систем сервера, а также рабочего стола.

4
27.01.2020, 21:10

Теги

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