Search term and output term in desired field


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search term and output term in desired field
# 22  
Old 02-28-2007
try the below code,
this should definitely work

Quote:
#! /opt/third-party/bin/perl

my(@split_arr);

open(FILE, "< file") || die "Unable to open file <$!>\n";

while(<FILE>) {
s/^ *//;
@split_arr = split(/ +/, $_);
if( $split_arr[1] =~ m/ddd/ ) {
print "$split_arr[$#split_arr]";
}
}

close(FILE);
exit 0
# 23  
Old 02-28-2007
Quote:
Originally Posted by matrixmadhan
try the below code,
this should definitely work
Thanks matrixmadhan, its working now .
But can you explain this part of the code that you have added ? Seems too complex.

s/^ *//
# 24  
Old 03-01-2007
Quote:
Thanks matrixmadhan, its working now .
But can you explain this part of the code that you have added ? Seems too complex.

s/^ *//
Reply With Quote
Remove spaces starting from the beginning (^) of the line ($_)
# 25  
Old 03-01-2007
Hi,

I have a problem now. I have my textfile input below. But when i do the calculation of "$no = $d - $a", the answer is 0. Why is this so ?

Input:
111 bbb ccc ddd
222 mmm nnn kkk
333 ppp hhh vvv
444 ggg zzz lll


Code:
#!/usr/bin/perl

my(@split_arr);

open(FILE, "< textfile") || die "Unable to open file <$!>\n";

while(<FILE>) {
  s/^ *//;
  @split_arr = split(/ +/, $_);
  if( $split_arr[3] =~ m/ddd/ ) {
    my $a = $split_arr[0];
print "$a\n";
  }
if( $split_arr[3] =~ m/kkk/ ) {
  print "$split_arr[0]\n";
my $b = $split_arr[0];
print "$b\n";
}
if( $split_arr[3] =~ m/vvv/ ) {
  my $c = $split_arr[0];
print "$c\n";
}
if( $split_arr[3] =~ m/lll/ ) {
  my $d = $split_arr[0];
print "$d\n";
}
}
$no = $d - $a;
print "$no\n";

close(FILE);
exit 0

# 26  
Old 03-01-2007
Code:
#!/usr/bin/perl

my(@split_arr);

my($a, $b, $c, $d);

open(FILE, "< textfile") || die "Unable to open file <$!>\n";

while(<FILE>) {
  s/^ *//;
  @split_arr = split(/ +/, $_);
  if( $split_arr[3] =~ m/ddd/ ) {
    $a = $split_arr[0];
print "$a\n";
  }
if( $split_arr[3] =~ m/kkk/ ) {
  print "$split_arr[0]\n";
$b = $split_arr[0];
print "$b\n";
}
if( $split_arr[3] =~ m/vvv/ ) {
  $c = $split_arr[0];
print "$c\n";
}
if( $split_arr[3] =~ m/lll/ ) {
  $d = $split_arr[0];
print "$d\n";
}
}
$no = $d - $a;
print "$no\n";

close(FILE);
exit 0


Take care of the scoping of variables,

when $d = $var1 - $var2 is evaluated

there is no way $d and $a would still remain after their scope! Smilie
# 27  
Old 03-01-2007
Thanks alot matrixmadhan!! Thanks for your advice.
# 28  
Old 03-02-2007
Hi all,

To extend it, i have added the row in red in the input file.

Input:
111 bbb ccc ddd
222 mmm nnn kkk
999 mmm real kkk
333 ppp hhh vvv
444 ggg zzz lll


Code:
#!/usr/bin/perl

my(@split_arr);
my($a, $b, $c, $d);

open(FILE, "< textfile") || die "Unable to open file <$!>\n";

while(<FILE>) {
  s/^ *//;
  @split_arr = split(/ +/, $_);
  if( $split_arr[3] =~ m/ddd/ ) {
    $a = $split_arr[0];
print "$a\n";
  }
if( $split_arr[3] =~ m/kkk/ && $split_arr[2] eq "real" ) {
 $b = $split_arr[0];
print "$b\n";
}
if( $split_arr[3] =~ m/vvv/ ) {
$c = $split_arr[0];
print "$c\n";
}
if( $split_arr[3] =~ m/lll/ ) {
$d = $split_arr[0];
print "$d\n";
}
}
$no = $d - $a;
print "$no\n";

close(FILE);
exit 0

Expected value:
111
999
333
444
333


But i am getting the below.

111
222
333
444
444


Can you tell me what's wrong with my code?

Last edited by Raynon; 03-02-2007 at 10:54 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Error term undefined

i keep getting this error when i ssh using my id - any idea (2 Replies)
Discussion started by: tariq_m
2 Replies

2. Shell Programming and Scripting

Search term in nth field and replace kth column

Hi, I have a text file which looks like this a.txt A,12,Apple,Red B,33,Banana,Yellow C,66,Sky,Blue I need to search for a particular field(s) in particular column(s) and for that matching line need to replace the nth column. Sample scenario 1: Search for 66 in second field and Sky in... (5 Replies)
Discussion started by: wahi80
5 Replies

3. Shell Programming and Scripting

extracting a column using search term

I am trying to select a column using a search term. My input file looks like this (tab delimited): ABC BJS FDG GHH DGH DFG GHF 95 456 5 266 87 4567 67 3 54 678 4567 45 6 36 232 55 3 5 6 8 34 cat filename | awk '{print $2}'above code will give me the second column. However, what I want... (2 Replies)
Discussion started by: SangLad
2 Replies

4. UNIX for Dummies Questions & Answers

qvt term with windows xp

I.m using qvt term to convert my windows xp laptop to work with sun ultra 5 unix system but i can't connect - my settings are off and i can't figure it out - i have a feeling it is my serial port # the porgramm is asking for. Can someone tell me where i can find this number. thanks Christine (9 Replies)
Discussion started by: lucenta tire
9 Replies

5. Shell Programming and Scripting

killproc -term

Hi, I am trying the function killproc -term and it seems to be doing something extra that kill <pid> doesn't do. My daemon cleanly terminates using kill, but not using killproc. I tried strace on killproc and then killproc works well. I read online that strace ignores SIGSTOP. does that mean... (4 Replies)
Discussion started by: fosfat
4 Replies

6. Shell Programming and Scripting

Search term highlighting using "less"

I'm using less to find terms in a 6 gb text file in OS X in the terminal. When I first search for the patter, it finds it, scrolls the document to the correct location, and highlights it. But when I search again, the document scrolls to a new further location (I'm assuming it's found the pattern... (2 Replies)
Discussion started by: garethson
2 Replies

7. Programming

How to stop other processes and kernel from printing output on current virtual term

Hello All, Background ======== I am creating a virtual appliance console for a software stack on VMware ESXi. I am using Centos 5.x as the Linux distro (Guest OS). I have created a ncurses based application that does the user authentication and present him with some basic controls to do basic... (2 Replies)
Discussion started by: ku@ntum
2 Replies

8. Shell Programming and Scripting

Help with TERM script

I am trying to amend an existing TERM script to prompt the end user for a password - then take that password and add it to a specific part of an existing file. Here is what I have - BUT - I am confusing Unix with Term and my script does not like what I added b/c the script simply runs through... (1 Reply)
Discussion started by: Surdeymon
1 Replies

9. Programming

Create a Term & Run chars on this Term

hi floks ! i'd like to know how can i transmete a character or a string from my source code to a term and make it interpret or un by the shell wich is running in my term. I'd like to create a Term from my code (and get its file descriptor) and then transmete each char typed on the keyboard to... (1 Reply)
Discussion started by: the_tical
1 Replies

10. UNIX for Dummies Questions & Answers

X-Term for Windows

Hi Everyone, I need some information from all of you guys. I generally work on a Solaris OS in my school and I had heard that I can download something called X-Term on a Windows system and still work on some of the graphical things on windows which generally work only on unix. This is what I... (5 Replies)
Discussion started by: yelamarthi
5 Replies
Login or Register to Ask a Question