split to array in perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting split to array in perl
# 1  
Old 07-06-2007
split to array in perl

Collegues
I have flat file in the following format.
137 (NNP Kerala) (NNP India)
92 (NN Rent) (NN Range)
70 (NNP Thiruvananthapuram) (NNP Kerala)
43 (NNP Tourist) (NNP Home)
40 (NNP Reserve) (NNP Now)
25 (SYM @) (NN hotelskerala)
25 (NNP Thiruvananthapuram-695001) (NNP Kerala)
23 (NN Reservation) (IN For)
23 (NNP Now) (NNP mailto)
21 (NNP com) (NN <s/s>)
21 (VBZ subject=) (NN Reservation)
21 (NN <s/s>) (NN <s>)
21 (NN <s>) (VBZ subject=)
18 (NNP Aristo) (NN Junction)
16 (NNP Medical) (NNP College)
16 (NNP Road) (NNP Thiruvananthapuram)
14 (IN For) (NNP Hotel)
14 (NNP Thiruvananthapuram-695011) (NNP Kerala)
13 (NNP com) (NNP Reserve)
11 (NNP Thampanoor) (NNP Thiruvananthapuram)
I tried to split and store it in to an rray using the code
Code
________________________________________
open (PARSE,file2);
@mwe = split(/\n/,<PARSE>);
print "@mwe\n";
foreach $mwe(@mwe) {
if ($mwe =~ m/[0-9]+ (NNP [A-z]+) (NNP [A-z]+)/)
{
print "$mwe\n";
}
else {
print " hi hi..... \n";
}
}
close (PARSE);
--------------------------------------------------------------------
But it is not working.
Any solution
With thanks and regards
Jaganadh.G
Linguist
# 2  
Old 07-06-2007
Code

Code:
#!/bin/perl

open (PARSE,file2);
@mwe = <PARSE>;
foreach $mwe (@mwe) {
        if ($mwe =~ /[\d]+\s+\(NNP [\w\s]+\) \(NNP [\w\s]+\)/) {
                print "$mwe\n";
        }
        else{
                print " hi hi..... \n";
        }
}
close (PARSE);

Output

Code:
137 (NNP Kerala) (NNP India)

 hi hi.....
70 (NNP Thiruvananthapuram) (NNP Kerala)

43 (NNP Tourist) (NNP Home)

40 (NNP Reserve) (NNP Now)

 hi hi.....
 hi hi.....
 hi hi.....
23 (NNP Now) (NNP mailto)

 hi hi.....
 hi hi.....
 hi hi.....
 hi hi.....
 hi hi.....
16 (NNP Medical) (NNP College)

16 (NNP Road) (NNP Thiruvananthapuram)

 hi hi.....
 hi hi.....
13 (NNP com) (NNP Reserve)

11 (NNP Thampanoor) (NNP Thiruvananthapuram)


Is this the one that you were looking for?
# 3  
Old 07-06-2007
excately .
Thanks a lot.
I am conducting some study on the Behavior of English language. I prepared this program to get some data.
I got excta solution
Thanks lot
Jaganadh.G
Linguist
# 4  
Old 07-06-2007
FYI

this is a cheating way to accept files on
command line or a named one if none

Code:
@ARGV = ("filename") unless @ARGV;
# then


@A = <>; # slurp the file(s)

or 

while (<>) # read line by line for all files

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to split the string value to an array?

Test1.txt Tom is hot Test.sh filename="/directory/Test1.txt" set - A store while IFS= read value do awk '{split($value,store," ")}' done < "$filename" echo ${#sore} From the code in the executing file, I would like each... (8 Replies)
Discussion started by: TestKing
8 Replies

2. UNIX for Beginners Questions & Answers

How to split a string into array?

value=malayalam # i need to store the value in an array by splitting the character #the output i need is m a l a y a l a m Please use CODE tags for output data as well as required by forum rules! (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies

3. Shell Programming and Scripting

Perl split and array

Hello, I have the following code: while ($line = <fd_in>) { 126 $line = " " . $line ; 127 print "our_line:$line\n"; 128 @list = split (/\s+/, $line) ; 129 print "after_split:@list\n"; 130 print "$list\t$list\t$list\t$list\t$list\t$list$list\t\n"; 131 $len =... (2 Replies)
Discussion started by: Zam_1234
2 Replies

4. Shell Programming and Scripting

split string into array in shell

Hi all, I want to split a string into array based on given delimiter, for example: String: "foo|bar|baz" with delimiter "|" into array: strArr to strArr with values foo, bar and baz. Thanks a lot. Roy987 (5 Replies)
Discussion started by: Roy987
5 Replies

5. 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

6. Shell Programming and Scripting

[Perl] Split lines into array - variable line items - variable no of lines.

Hi, I have the following lines that I would like to see in an array for easy comparisons and printing: Example 1: field1,field2,field3,field4,field5 value1,value2,value3,value4,value5Example 2: field1,field3,field4,field2,field5,field6,field7... (7 Replies)
Discussion started by: ejdv
7 Replies

7. 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

8. Shell Programming and Scripting

split and making an array inside another array

I want to run an awk split on a value that has been pushed through an array and I was wondering what the syntax should be?? e.g. running time strings through an array and trying to examine just minutes: 12:25:30 10:15:13 08:55:23 awk ' NR==FNR{ ... (2 Replies)
Discussion started by: dcfargo
2 Replies

9. Shell Programming and Scripting

split variable values into array

i have these values inside variable $blah BUNGA TERATAI 3 5055 ITH 1 0 0 0 1 1 JADE TRADER 143W ITH 4 0 0 0 4 4 MOL SPLENDOR 0307A ITH 3 0 0 0 3 3 so how do I split them into array with the... (4 Replies)
Discussion started by: finalight
4 Replies

10. Shell Programming and Scripting

How to get array to not split at spaces?

I have been working on some code for a while, that will parse a log file, look for a specified time discrepancy between entries, and then print that line +/- n other lines out to a file... #!/bin/bash file=$1 # The input log file maxTime=$2 # The time discrepancy to look for n=$3 ... (1 Reply)
Discussion started by: jjinno
1 Replies
Login or Register to Ask a Question