会awk是"输入"转换为"所需的输出"有用吗?
输入
testing speed of encryption
test 0 (64 bit key, 16 byte blocks): 2250265 operations in 1 seconds (36004240 bytes)
test 1 (128 bit key, 64 byte blocks): 879149 operations in 1 seconds (56265536 bytes)
test 2 (128 bit key, 256 byte blocks): 258978 operations in 1 seconds (66298368 bytes)
test 3 (128 bit key, 1024 byte blocks): 68218 operations in 1 seconds (69855232 bytes)
test 4 (128 bit key, 8192 byte blocks): 8614 operations in 1 …Run Code Online (Sandbox Code Playgroud) 当我尝试以下
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @bl = qw(red green blue);
my @a = qw(green yellow purple blue pink);
print Dumper [grep {not @bl} @a];
Run Code Online (Sandbox Code Playgroud)
我得到一个空数组.我原以为会@bl减去@a,所以输出是yellow purple pink.
这有什么不对?
我有这个脚本
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
my %x1 = ();
$x1{"a"} = "e";
my %x2 = ();
$x2{"a"} = ["b","c"];
p(\%x1);
p(\%x2);
sub p {
my $x = shift @_;
print $x->{a};
print "\n";
}
Run Code Online (Sandbox Code Playgroud)
哪个输出
e
ARRAY(0x2603fa0)
Run Code Online (Sandbox Code Playgroud)
问题是我不知道输入是数组还是标量,当它是数组时我也想打印这些值.
可以p修改这样做吗?
我想编译NRPE静态,所以我可以将已编译的二进制文件复制到OmniOS服务器,我不希望在其上安装gcc.我更喜欢从存储库安装带有SSl支持的NRPE,但是这样不存在,所以我想自己编译它.但是,./configure脚本不包含它接缝的静态选项
~/nrpe-2.15# ./configure --help | grep static
~/nrpe-2.15# ./configure --help | grep share
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
Run Code Online (Sandbox Code Playgroud)
题
如何编译configure静态使用的程序?
此代码查找今天和固定日期之间的差异.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use DateTime ();
use DateTime::Duration ();
use DateTime::Format::Strptime ();
my $date = "23/05-2022";
my $parser = DateTime::Format::Strptime->new(
pattern => '%d/%m-%Y',
time_zone => 'local',
);
$date = $parser->parse_datetime($date);
my $today = DateTime->today(time_zone=>'local');
my $d = DateTime::Duration->new($today - $date);
print Dumper $d->delta_days;
Run Code Online (Sandbox Code Playgroud)
问题是只有输出-22天.
如果我这样做,print Dumper $d;我也可以看到-130个月.
$VAR1 = bless( {
'seconds' => 0,
'minutes' => 0,
'end_of_month' => 'preserve',
'nanoseconds' => 0,
'days' => -22,
'months' => -130
}, 'DateTime::Duration' );
Run Code Online (Sandbox Code Playgroud)
如何让它在几天内输出结果? …
我有一个脚本,如果它运行,每次输出大约10行.这些行的内容各不相同.
我真的希望能够grep在输出中根据输出做不同的事情.
在伪这是我想做的
cat /etc/password | \\
if [ grep "root" $STDOUT ]; then
echo "root is found"
elif [ grep "nobody" $STDOUT ]; then
echo "nobody is found"
fi
Run Code Online (Sandbox Code Playgroud)
我在这里cat /etc/password作为一个例子,但应该用我上面提到的脚本替换它.
问题是,我怎么输出保持从cat /etc/password在if/ elif条件?
假设我有这个
#!/usr/bin/perl
%x = ('a' => 1, 'b' => 2, 'c' => 3);
Run Code Online (Sandbox Code Playgroud)
我想知道值2是否是哈希值%x.
怎么做的?
我的sed命令很长
sed -i 's/append ro initrd=initrd.img quiet splash nbdport=2000/append ro initrd=initrd.img quiet splash nbdport=2000 video=LVDS-1:d/g' /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Run Code Online (Sandbox Code Playgroud)
是否可以分解几行以使其更清楚它的作用?
像这样的东西?
sed -i 's/
append ro initrd=initrd.img quiet splash nbdport=2000
/
append ro initrd=initrd.img quiet splash nbdport=2000 video=LVDS-1:d
/g'
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Run Code Online (Sandbox Code Playgroud) 此函数exists与哈希相同.
我计划使用它很多.
它能以某种方式进行优化吗?
my @a = qw/a b c d/;
my $ret = array_exists("b", @a);
sub array_exists {
my ($var, @a) = @_;
foreach my $e (@a) {
if ($var eq $e) {
return 1;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有这个双for循环,我有行序和列顺序数组索引,这应该是性能不好.
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
/* Column-major order */
d = array_a[col*height +row];
if (d < 0) { d = 0; }
/* Row-major order */
/* Map from x=0,y=0 at buttom left corner to
0,0 at top left corner */
array_b[width*(height-1 -row) + col] = d;
}
}
Run Code Online (Sandbox Code Playgroud)
是否有关于如何从一个重写到另一个的方法/方法?
当我尝试将最后一个重写为列顺序时,数据会变得歪斜.不能改写吗?
桑德拉