Use split function in perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Use split function in perl
# 1  
Old 06-12-2008
Use split function in perl

Hello,

if i have file like this:
010000890306932455804 05306977653873 0520080417010520ISMS SMT ZZZZZZZZZZZZZOC30693599000 30971360000 ZZZZZZZZZZZZZZZZZZZZ202011302942311 010000890306946317387 05306977313623 0520080417010520ISMS SMT ZZZZZZZZZZZZZOC306942190000 30971360000 ZZZZZZZZZZZZZZZZZZZZ202010300391748 010000890306945153336 05306977918990 0520080417010521ISMS SMT ZZZZZZZZZZZZZOC306942190000 30971360000 ZZZZZZZZZZZZZZZZZZZZ202011304607230 010000890306948068406 05306977404213 0520080417010523ISMS SMT ZZZZZZZZZZZZZOC306942190000 30971360000 ZZZZZZZZZZZZZZZZZZZZ202010000717971 010000890306998573372

How can i perform a split based on the number of characters or base on the "size? For example split every 70 characters.
Foa example i want in array[0] to be stored the 70 first characters of the file and in array[1] the next 70 charactets etc...

How can i do this?
# 2  
Old 06-12-2008
Try this:
Code:
@splitstrings = ($string =~ /.{1,70}/g);

The intention is to do a greedy match on every occurance of 70 characters (or less, to match any extra trailing characters) and return the list of matches.
# 3  
Old 06-12-2008
or using split:

Code:
@data = split(/.{1,70}/,$string);

# 4  
Old 06-12-2008
Code:
@data=split (/.{70}/,$string);

# 5  
Old 06-12-2008
Quote:
Originally Posted by ghostdog74
Code:
@data=split (/.{70}/,$string);

Actually I don't think either one of our suggestions will work. The split() function leaves out the delimiter by default, in this case there is no delimiter. If you put parenthesis around the delimiter it might work:

Code:
@data = split(/(.{1,70})/);

But that seems awkward at best and may not work correctly.
# 6  
Old 06-13-2008
KevinADC is correct: you can capture the delimiter in split in the just way he describes, and this gives you your chunks of 70 characters, but of course you also capture the stuff in between the delimiters (because that's what split is for!), and that gives you a bunch of empty array elements too.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

[Solved] Perl Question - split function with csv file

Hi all, I have a csv file that appears as follows: ,2013/03/26,2012/12/26,4,1,"2017/09/26,5.75%","2017/09/26,1,2018/09/26,1,2019/09/26,1,2020/09/26,1,2021/09/26,1",,,2012/12/26,now when i use the split function like this: my @f = split/,/; the split function will split the data that is... (2 Replies)
Discussion started by: WongSifu
2 Replies

2. Shell Programming and Scripting

Perl split function

my @d =split('\|', $_); west|ACH|3|Y|LuV|N||N|| Qt|UWST|57|Y|LSV|Y|Bng|N|KT| It Returns d as 8 for First Line, and 9 as for Second Line . I want to Process Both the Files, How to Handle It. (3 Replies)
Discussion started by: vishwakar
3 Replies

3. UNIX for Advanced & Expert Users

regular expression for split function in perl

Hi, Below is an example of a record I have, which I wish to split using the perl's split function and load it into an array. I am having tough time figuring out the exact reg-ex to perform the split. Given record: "a","xyz",0,2,48,"abcd","lmno,pqrR, stv",300,"abc",20, The delimiter to... (4 Replies)
Discussion started by: jghoshal
4 Replies

4. Shell Programming and Scripting

PERL split function

Hi... I have a question regarding the split function in PERL. I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time. Also... (1 Reply)
Discussion started by: castle
1 Replies

5. Homework & Coursework Questions

PERL split function

Hi... I have a question regarding the split function in PERL. I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time. Also... (0 Replies)
Discussion started by: castle
0 Replies

6. Homework & Coursework Questions

PERL split function

Hi... I have a question regarding the split function in PERL. I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time. Also... (1 Reply)
Discussion started by: castle
1 Replies

7. Shell Programming and Scripting

perl:extract 169008 with split function on /atrclips/u90/2009/169_008

On a line in a file:: /atrclips/u90/2009/169_008/Y5288900/SATHSWR_P1/1809853_SATHSWR_P1.tif,00018098539415200901_SATHSWR_P1.tif How do I use the split function to extract 169008......I tried .... foreach my $line (@lines) { ... (3 Replies)
Discussion started by: bandar007
3 Replies

8. Shell Programming and Scripting

perl-like split function for bash?

Hi! I'm doing bash shell scripting and would like to know if bash had something similar to perl's split function? Ultimately, I want to split two strings (delimeter = '.') and compare each of their values. Thus, I figured putting them in an array would be easiest. So i.e.: String 1:... (5 Replies)
Discussion started by: eur0dad
5 Replies

9. Shell Programming and Scripting

perl split function

$mystring = "name:blk:house::"; print "$mystring\n"; @s_format = split(/:/, $mystring); for ($i=0; $i <= $#s_format; $i++) { print "index is $i,field is $s_format"; print "\n"; } $size = $#s_format + 1; print "total size of array is $size\n"; i am expecting my size to be 5, why is it... (5 Replies)
Discussion started by: new2ss
5 Replies

10. UNIX for Dummies Questions & Answers

split function

Hi all! I am relatively new to UNIX staff, and I have come across a problem: I have a big directory, which contains 100 smaller ones. Each of the 100 contains a file ending in .txt , so there are 100 files ending in .txt I want to split each of the 100 files in smaller ones, which will contain... (4 Replies)
Discussion started by: ktsirig
4 Replies
Login or Register to Ask a Question