Help with manipulating Array in Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with manipulating Array in Perl
# 1  
Old 08-10-2011
Java Help with manipulating Array in Perl

I am new in perl ....

I defined Array in Perl which contain values as below:
Array name: @TEST
sample values : when I print Array:
Code:
print " @test \n";

Code:
 <title>0008857661</title>
 <title>0009841171</title>
 <title>0010161261</title>
 <title>0010230023</title>

I want to get only these numbers and remove <title> and </title> from my array. I can do easily using file in LINUX by applying sed commads. But would like to do this operation in Array in perl. Any help how can i get this.

Last edited by pludi; 08-10-2011 at 05:40 AM..
# 2  
Old 08-10-2011
Simple:
Code:
@test = map { /\D*(\d+)\D*/; $1 } @test;


Last edited by pludi; 08-10-2011 at 06:29 AM..
# 3  
Old 08-10-2011
Code:
perl -e '
@array = qw|
 <title>0008857661</title>
 <title>0009841171</title>
 <title>0010161261</title>
 <title>0010230023</title>
|;
s/^.*?(\d+).*$/$1/ for @array;
print "@array\n";
'

TMTOWTDI Smilie

Last edited by yazu; 08-10-2011 at 05:48 AM.. Reason: TMTOWTDI
# 4  
Old 08-10-2011
Quote:
Originally Posted by pludi
Simple:
Code:
@test = map { /\D.*(\d+)\D.*/; $1 } @test;


above will print only the last digit of each value,
Code:
@test = map { /\<title\>(\d+)\<\/title\>/; $1 } @test;

this above statement ll print the all digits.

Last edited by pludi; 08-10-2011 at 06:03 AM..
# 5  
Old 08-10-2011
Please use [CODE] tags when posting source code, ...

Also, read my regex again. It fetches all digits (\d) surrounded by non-digits (\D), so it will return more than only the last one.
# 6  
Old 08-10-2011
Code:
@test = map { 
/\D # A non digit
.* # followed by any number of any characters greedily matched
(\d+) # a capture group of one or more digits
\D # followed by a non digit
.* # followed by any number of any characters greedily matched
/x
; $1 } @test;

Actually latika has a point there, perhaps you meant
Code:
@test = map { /\D+(\d+)\D+/; $1 } @test;

# 7  
Old 08-10-2011
Yes, that's right, and my signal that my caffeine level is dangerously low. Corrected my post, sorry.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Manipulating a list into a two-dimensional array

hi, total newbie to shell scripting and wondering if some of you guru's can give me a hand on a problem I'm trying to solve. The tmplsnr.a file contains LSNR_51526 db1 db2 LSNR_51527 db3 db4 db5 Summary - depending on which db is set, the script will start the relevant listener... (5 Replies)
Discussion started by: mingy10
5 Replies

2. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

3. Shell Programming and Scripting

PERL : Read an array and write to another array with intial string pattern checks

I have an array and two variables as below, I need to check if $datevar is present in $filename. If so, i need to replace $filename with the values in the array. I need the output inside an ARRAY How can this be done. Any help will be appreciated. Thanks in advance. (2 Replies)
Discussion started by: irudayaraj
2 Replies

4. Shell Programming and Scripting

Array in Perl - Detect several file to be in one array

Hi everyone I have one question about using array in perl. let say I have several log file in one folder.. example test1.log test2.log test3.log and the list goes on.. how to make an array for this file? It suppose to detect log file in the current directory and all the log file will... (3 Replies)
Discussion started by: sayachop
3 Replies

5. Shell Programming and Scripting

perl, put one array into many array when field is equal to sth

Hi Everyone, #!/usr/bin/perl use strict; use warnings; my @test=("a;b;qqq;c;d","a;b;ggg;c;d","a;b;qqq;c;d"); would like to split the @test array into two array: @test1=(("a;b;qqq;c;d","a;b;qqq;c;d"); and @test2=("a;b;ggg;c;d"); means search for 3rd filed. Thanks find the... (0 Replies)
Discussion started by: jimmy_y
0 Replies

6. Shell Programming and Scripting

Perl grep array against array

Hi, Is there any way I can grep an array against another array? Basically here's what I need to do. There will be an array containing some fixed texts and I have to check whether some files contain these lines. Reading the same files over and over again for each different pattern doesnt seem... (1 Reply)
Discussion started by: King Nothing
1 Replies

7. Shell Programming and Scripting

perl -write values in a file to @array in perl

Hi can anyone suggest me how to write a file containing values,... say 19 20 21 22 .. 40 to an array @array = (19, 20, ... 40) -- Thanks (27 Replies)
Discussion started by: meghana
27 Replies

8. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

9. Shell Programming and Scripting

Manipulating a fixed length file w/o PERL

Greetings, I need to take a fixed length file, similar to the following: <input file> 1233 e 612 i 43378 f 03 x 22 17 e 9899 a 323e a6 z7 read in the character in position 6, and if that character = e, delete that line from the file. <output file> 43378 f 03 x 22 17 e 9899 ... (4 Replies)
Discussion started by: dabear
4 Replies

10. Shell Programming and Scripting

how to get last value in an array in perl

Hi, I have a set of file names say: file1 file2 file3 .. filen I may just do a ls -l or however it works to read this list into an array... I need to pick the last file name that is "filen" from the list... your help is greatly appreciated.....hope im clear on my question... (7 Replies)
Discussion started by: meghana
7 Replies
Login or Register to Ask a Question