我想在文件中显示所有十进制数
我的代码
my $input = $ARGV[0];
open(FILE, $input) or die $!;
my @lines = <FILE>;
foreach(@lines){
$line++;
if($_ =~ '\d+'){
print "magic number found in line number".$line."\n";
}
}
close(FILE1);
OUTPUT I GET
magic number found in line number 30
我需要的输出
magic number 10 found in line number 30.
如何显示小数值。
我还需要打印HEXADECIMAL和OCTALS数字。 使用[0-9a-fA-F。] +十六进制的正则表达式给我随机输出
答案 0 :(得分:3)
无需显式打开文件或将其读入数组。这个程序将按照你的要求进行
use strict;
use warnings;
while (<>) {
print "magic number $1 found in line number $.\n" if /(\d[\d.]*)/;
}
答案 1 :(得分:0)
另一种解决方案:
egrep -won '0x[0-9A-Fa-f][0-9A-Fa-f]*|[0-9][0-9]*'
(w:单词边界.o:只打印匹配,而不是整行.n:也添加行号)
将打印:
line:value
(如果同一行上有多个值,也可以使用!它会显示尽可能多的“line:value”,因为匹配)
在您自己的代码提取中显示:
1:0
(即,在第1行,我们看到“0”)