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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl:extract 169008 with split function on /atrclips/u90/2009/169_008
# 1  
Old 01-23-2009
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)
{

if ($line != ~ m/^HD/) { # exclude the first record in file

($Field1, $Field2, $Field3, $Field4) = split ///, $line;

$proj_ssn1 = substring($Field4, 0, 2);
$proj_ssn2 = substring($Field4, 4, 6);
$proj_ssn = $proj_ssn1.$proj_ssn2;
break;
}
}
# 2  
Old 01-23-2009
You should have gotten several errors when trying to run your code. Here it is fixed:

Code:
foreach my $line (@lines) {
   if ($line !~ m/^HD/) { # exclude the first record in file
      my $Field4 = (split (/\//, $line))[3]; 
      $proj_ssn1 = substring($Field4, 0, 2);
      $proj_ssn2 = substring($Field4, 4, 6);
      $proj_ssn = $proj_ssn1.$proj_ssn2;
      break;
   }
}

The lines in red I am not sure what you are trying to do. BUt perl has no substring() function or "break" command. Maybe you mean to use substr() and "last". If you want to remove the underscore from 169_008 just use tr///.

$Field4 =~ tr/_//d;
# 3  
Old 01-23-2009
Thanks so will ......

foreach my $line (@lines) {

if ($line != ~ m/^HD/) { # Then it is a clip record

my $Field4 = (split (/\//, $line))[3];
$Field4 =~ tr/_//d;
last;
}
}

return 169008 from /atrclips/u90/2009/169_008/Y5288900/SATHSWR_P1/1809853_SATHSWR_P1.tif,00018098539415200901_SATHSWR_P1.tif
# 4  
Old 01-23-2009
Quote:
Originally Posted by bandar007
Thanks so will ......

foreach my $line (@lines) {

if ($line != ~ m/^HD/) { # Then it is a clip record

my $Field4 = (split (/\//, $line))[3];
$Field4 =~ tr/_//d;
last;
}
}

return 169008 from /atrclips/u90/2009/169_008/Y5288900/SATHSWR_P1/1809853_SATHSWR_P1.tif,00018098539415200901_SATHSWR_P1.tif
No, it will return nothing because you are still using the incorrect "!= ~" instead of "!~" as I posted above (see red colored code above). Fix that, run the code, and see what happens.
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-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

8. Shell Programming and Scripting

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... (5 Replies)
Discussion started by: chriss_58
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