1* 2* 3 4 5 6
You need to extract the group of numbers per line that have a * associated, the result should be like this:
10 20 30* 40 50* 60
100 200 300 400* 500 600
1000 2000* 3000 4000 5000* 6000*
1 2
30 50
400
2000 5000 6000
Could you find a language that you obtain the same result with less lines of code than Perl?
#!/usr/bin/perl
use strict;
use warnings;
while (<>) {
chomp;
my @Data = /(\d+)\*/g;
print "@Data\n";
}
__END__
You can do it even with a one-liner:
janeiros@harlie:/media/disk$ perl -ne '@Data = /(\d+)\*/g; print "@Data\n"' data.txt
1 2
30 50
400
2000 5000 6000
From this example:
- The context, Perl assigning is sensible to the left part of the assignment sentence.
- The modifiers for the REGEXes, like the g in this case.
- The grouping for the extraction, the parentheses.
J. E. Aneiros
GNU/Linux User #190716 en http://counter.li.org
perl -e '$_=pack(c5,0105,0107,0123, 0132,(1<<3)+2);y[A-Z][N-ZA-M]; print;'
PK fingerprint: 5179 917E 5B34 F073 E11A AFB3 4CB3 5301 4A80 F674
No comments:
Post a Comment