我正在学习文件比较awk
.
我找到了如下的语法,
awk 'NR==FNR{a[$1];next}$1 in a{print $1}' file1 file2
Run Code Online (Sandbox Code Playgroud)
我无法理解这NR==FNR
在什么意义?如果我尝试,FNR==NR
那么我也得到相同的输出?
到底是做什么的?
在编写这个程序之前,我认为这our
是一个包范围变量,并且my
是一个文件范围变量.但是,在完成该程序后,我感到困惑.
我的节目是,
#!/usr/bin/perl
use strict;
use warnings;
package one;
our $val = "sat";
my $new = "hello";
print "ONE:val =>$val \n";
print "ONE:new =>$new \n\n";
package two;
print "TWO:val =>$val \n";
print "TWO:new =>$new \n";
Run Code Online (Sandbox Code Playgroud)
哪个输出
ONE:val =>sat
ONE:new =>hello
TWO:val =>sat
TWO:new =>hello
Run Code Online (Sandbox Code Playgroud)
那么,my
和之间our
有什么区别.两者是相同还是有任何区别?
可能重复:
如何在Java中反转int数组?
java中用Array.Reverse(bytearray)
C#执行的等效函数是什么?
我有两个十六进制字符串.我需要XOR
在它们之间进行操作.
我的六角串喜欢,
a = "1A6F2D31567C80644A5BEF2D50B986B";
b = "EF737F481FC7CDAE7C8B40837C80644";
Run Code Online (Sandbox Code Playgroud)
如何在它们之间进行XOR操作?你能给出一些指导方针吗?
我写了一个简单的程序来处理一些信号.我的计划是,
#!/usr/bin/perl
use strict;
use warnings;
$SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&signal_handler;
sub signal_handler
{
print " ".localtime()." Handled the signal\n";
};
while(1)
{
sleep(1);
}
Run Code Online (Sandbox Code Playgroud)
%SIG
在接收信号时将调用对应信号处理程序的散列中指定的信号是什么.我为三个信号声明了一个信号处理程序.
我想找到收到的信号.
在C
,它将通过信号处理程序参数本身给出信号编号.
例,
void sig_handler(int signo);
Run Code Online (Sandbox Code Playgroud)
我不知道在perl.I试图找到.但是,我没有找到任何答案.
这是我的 sed。
sed 's/\([a-z]\)\([A-Z]\)\([0-9]\)\([a-z]\)\([A-Z]\)\([0-9]\)\([a-z]\)\([A-Z]\)\([0-9]\)\([a-z]\)/\10/g'
Run Code Online (Sandbox Code Playgroud)
我试图获得第 10 个分组值。但是,它给出的第一个分组值是 0(零)。
如何获得第10个分组值?
能否得到第10个分组值?
在执行时cipher.final
,它说bad decrypt
错误.我试图找出问题.但是,我找不到.你能告诉我的代码有什么问题吗?
这是我的代码:
require 'openssl'
require 'base64'
require 'hex_string'
result_h ="4fcd6b1ac843a2f8bf13f2e53dd5c1544fcd6b1ac843a2f8"
key = result_h.to_byte_string
encrypt_str="79994A6EF73DA76C";
cipher = OpenSSL::Cipher.new("DES-EDE3-CBC")
cipher.decrypt
cipher.key = key
data = encrypt_str.to_byte_string
res = cipher.update( data )
res << cipher.final
result_h= res.unpack("H*")[0]
puts result_h.inspect;
Run Code Online (Sandbox Code Playgroud)
错误是:
in `final': bad decrypt (OpenSSL::Cipher::CipherError)
Run Code Online (Sandbox Code Playgroud) 我想通过命令行获取进程的PID,即“cron”。我尝试了以下脚本。
ps ax|grep 'cron'
Run Code Online (Sandbox Code Playgroud)
但我得到了一张桌子的一部分,
1427 ? Ss 0:00 /usr/sbin/cron -f
24160 pts/5 S+ 0:00 grep --color=auto cron
Run Code Online (Sandbox Code Playgroud)
我如何从中提取pid?
我想清空超过30 MB大小的文件.我试图用find
命令解决这个问题.
find . -maxdepth 1 -size +32M -exec cat /dev/null > {} \;
Run Code Online (Sandbox Code Playgroud)
和
find . -maxdepth 1 -size +32M -exec echo -n > '{}' \;
Run Code Online (Sandbox Code Playgroud)
但是这两个命令都不会清空{}
文件.相反,它会创建一个文件.
为什么它不会清空文件?以及为什么它会创建一个名为{}
?的文件.什么是错的find
命令?