perl required output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl required output
# 1  
Old 08-13-2009
perl required output

Hi,

I have a string in log file from that i need to pick the username.

the string is like this--

Code:
pid 2172 tid 3124: 160: 10110847: userName :[app@abc.com]
pid 2172 tid 3124: 160: 10110847: userName :[napp@abc.com]
pid 2172 tid 3124: 160: 10110847: userName :[12345]
pid 2172 tid 3124: 160: 10110847: userName :[app@abc_sde.com]
pid 2172 tid 3124: 160: 10110847: userName :[567890]
pid 2172 tid 3124: 160: 10110847: userName :[dfgehj]

Note: I get so many lines in between the above snippet. this is just a snippet.

I want to take all the usernames here in the snippet. The code i have gives only the numeric part.

The output i am expecting is --

Code:
app@abc.com
napp@abc.com
12345
app@abc_sde.com
[567890
dfgehj

Suggest to handle special characters in the username.

Thanks
NT

Last edited by namishtiwari; 08-13-2009 at 09:13 AM.. Reason: output was wrong so corrected it.
# 2  
Old 08-13-2009
Code:
perl -ne '/(userName :.*)/; print $1,"\n";' logfile

# 3  
Old 08-13-2009
I tried this option already and it did not work for me.

some part of my code is like this--

Code:
for(;$index<@records;$index++)
	{
		#printf "LINENO=$index\n";
		
		if ($records[$index] =~ /userName\s+:\[(..*)\]/)
		{
			$User_Name = $1;
			print "User_Name before concatenation is = $User_Name\n";
			$User_Name =~ s/\s+//g;
			$User_Name= "'"  .   $User_Name     .  "'";
			print "User_Name = $User_Name\n";}

I never got the deisred result in my case.


Thanks
NT
# 4  
Old 08-13-2009
ahh... reg exp

Use this expression to match [usernames]
Code:
$line =~ /(\[.*\])/;

And then do this to remove the brackets
Code:
$line2 =~ s/(\[|\])//;

# 5  
Old 08-14-2009
Quote:
Originally Posted by chompy
Use this expression to match [usernames]
Code:
$line =~ /(\[.*\])/;

And then do this to remove the brackets
Code:
$line2 =~ s/(\[|\])//;

Does this make a diffrence as i am doing both in one.

Thanks
NT
# 6  
Old 08-14-2009
I suspect the problem is not what you think it is because your code works fine with your data, for me anyway:

Code:
while(<DATA>){
   if (/userName\s+:\[(..*)\]/){
      $User_Name = $1;
      print "User_Name before concatenation is = $User_Name\n";
      $User_Name =~ s/\s+//g;
      $User_Name= "'"  .   $User_Name     .  "'";
      print "User_Name = $User_Name\n";
   }
}

__DATA__
pid 2172 tid 3124: 160: 10110847: userName :[app@abc.com]
pid 2172 tid 3124: 160: 10110847: userName :[napp@abc.com]
pid 2172 tid 3124: 160: 10110847: userName :[12345]
pid 2172 tid 3124: 160: 10110847: userName :[app@abc_sde.com]
pid 2172 tid 3124: 160: 10110847: userName :[567890]
pid 2172 tid 3124: 160: 10110847: userName :[dfgehj]

and the output is:

Code:
User_Name before concatenation is = app@abc.com
User_Name = 'app@abc.com'
User_Name before concatenation is = napp@abc.com
User_Name = 'napp@abc.com'
User_Name before concatenation is = 12345
User_Name = '12345'
User_Name before concatenation is = app@abc_sde.com
User_Name = 'app@abc_sde.com'
User_Name before concatenation is = 567890
User_Name = '567890'
User_Name before concatenation is = dfgehj
User_Name = 'dfgehj'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Formatting required with the output

i have a o/p from find command that needs to be formatted currently when i'm running find . -name "v.info" it is giving below o/p /o/a/b/c/v.info /o/a/b/c/d/v.info /o/aa/bb/cc/v.info /o/aa/bb/cc/dd/v.info my requirement is if v.info is coming under sub-directories it shul be... (15 Replies)
Discussion started by: nikhil jain
15 Replies

2. Shell Programming and Scripting

Problem getting the required output

I need a Korn shell script which does the folllowing:- If there is one "|" (pipe) delimited file so, the script should check the 5th field to be blank or not. if it is a blank tht entire line of the file should be redirected to another file. if the 5th field is not blank it should pass that. ... (4 Replies)
Discussion started by: Juhi Kashyap
4 Replies

3. Shell Programming and Scripting

Script to get required output from textfile

Hi Iam running below script on one text file. usr/xpg4/bin/awk 'BEGIN {print "IP HOST_NAME SUB "} /IP IS/ {IP=$3} /local/ {HOST=$1} /PPPoE/ {SUB=$3 ;print IP, HOST, SUB} ' /Scripts/sub_report_$FILE>/Scripts/sub_final_report_.txt the output is coming as below IPHOST_NAME SUB ... (16 Replies)
Discussion started by: surender reddy
16 Replies

4. Shell Programming and Scripting

script to mail monitoring output if required or redirect output to log file

Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions. ... (4 Replies)
Discussion started by: aix_admin_007
4 Replies

5. UNIX for Advanced & Expert Users

Perl parsing help required.

Hello, I got a file like this. 5201 5202 5203 5204 1234 2345 3456 4567 6210 6220 6230 6240 The required output should be 5201 1234 6210 (9 Replies)
Discussion started by: suverman
9 Replies

6. Shell Programming and Scripting

output required

Hi I have the following output Message man amm (9196) is calling Hello & Alert man amtrr (9197) is stopped Find amfi (19198) is cancelled Engine Item aea (19203) is notified Engine Item2 aea2 ... (8 Replies)
Discussion started by: PrasannaKS
8 Replies

7. UNIX for Advanced & Expert Users

Perl - Help required

I am trying to upload a file to a SQL database table. The column type is IMAGE. I am looking for a solution to upload a word doc file. I tried 3 approaches. 1) my $fileToStore = "mytest.doc"; open IPFILE, "<", $name; binmode IPFILE; while (<IPFILE>) { $fileToStore .= $_; } close IPFILE;... (1 Reply)
Discussion started by: b.paramanatti
1 Replies

8. Shell Programming and Scripting

help me how to use nawk for required output

Hi all i have 2 input files 1st file is N1 | N2|N3|N4|N5|N6|N7|N8|N9 4041491000|245160|1|0|0|1|0|0|0 4041401505|152178|1|1|1|1|0|0|0 4041450004|014052|1|1|1|1|0|0|0 4041450005|580916|1|1|1|1|0|0|0 4041491000|230990|1|0|1|1|0|0|0 4041460001|338317|1|1|1|1|0|0|0 2nd file N1 |... (8 Replies)
Discussion started by: dodasajan
8 Replies

9. Shell Programming and Scripting

Perl Script required...

Hi All, Windows Platform. Perl Scripting. I have a file called 'hostnames.txt' contains hostname entries one by one line. Script has to perform the following command for each entry in that file. ovtopofix -G <hostname> Please anybody give me the script on this requirement. Thanks,... (1 Reply)
Discussion started by: ntgobinath
1 Replies

10. Shell Programming and Scripting

perl help required

hi previously this program used to ask for user input to perform operation so i have done the modifications but problem is that i have to create new file and redirect that file as input to this file and i want to avoid that so i made following modifications in program and i am not sure if its... (1 Reply)
Discussion started by: zedex
1 Replies
Login or Register to Ask a Question