Find pattern, and then last field from subsequent lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find pattern, and then last field from subsequent lines
# 8  
Old 11-11-2009
Hi... thanks for the suggestions... but they don't work. I'm working on Ubuntu rather than Solaris... wouldn't have thought it would make that much of a difference but it obviously does

steadyonabix: when I use that line, I get zero output
radoulov: when I use that line, I get mumbled junk, looks like the fields are overwriting each other
tip78: when I use that script, I just get loads of errors of type...

Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 7, <FH> line 1618.
Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 7, <FH> line 1619.
Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 7, <FH> line 1620.

Thanks for the suggestions though.. I'll keep looking at it.
# 9  
Old 11-11-2009
huh?
well try this:
Code:
#!/usr/bin/perl -w

while(<>){
    if(/: (network\d+?)$/){print "\n$1";next}
    /: (\d+?)$/;print ":$1"
}

format: test.pl infile >outfile
tip78
# 10  
Old 11-11-2009
Same thing.. except the error is now on line 5

Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 5, <> line 2622.
Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 5, <> line 2623.

st@project:~/Documents$ perl -version

This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
# 11  
Old 11-11-2009
Quote:
Originally Posted by Yorkie99
Same thing.. except the error is now on line 5

Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 5, <> line 2622.
Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 5, <> line 2623.

st@project:~/Documents$ perl -version

This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
thats should no matter just 2622 & 2623 lines of your file not contain : + space
but outfile should be full anyway
tip78
# 12  
Old 11-11-2009
Sorry... I should have made it clearer there maybe... its for all lines in the input file that its erroring on not just 2-3... I was just giving an example of the errors. I'm not quick enough on the ctrl-c to get it for lines 1-100 also.

The output file is completely blank
# 13  
Old 11-11-2009
So your input file seems to be different.
Another one with some assumptions:

Code:
perl -ane'
  print $F[-1], /Failed RADIUS Acc/? $/ : ":"
  ' infile

# 14  
Old 11-11-2009
that's can't be
if your infile have format:

Name: network1
Dropped packets: 15618
Dropped packets for IPv6: 27
Dropped packets: 74
Dropped packets for IPv6: 0
Failed RADIUS Authentication procedures: 0
Failed RADIUS Accounting procedures: 0

it should works fine

---------- Post updated at 10:51 AM ---------- Previous update was at 10:45 AM ----------

Quote:
Originally Posted by radoulov
So your input file seems to be different.
Another one with some assumptions:

Code:
perl -ane 'print $F[-1], /Failed RADIUS Acc/? $/ : ":" ' infile

this one works 20 seconds slower :P
tip78
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Print field after pattern in all lines

data: hello--hello1--hello2--#growncars#vello--hello3--hello4--jello#growncars#dello--gello--gelloA--gelloB#growncars# I want to be able to print all the values that are found between the patterns "#growncars#" and the next "#growncars#" on the same line. so the output should be: ... (8 Replies)
Discussion started by: SkySmart
8 Replies

2. Shell Programming and Scripting

Find pattern in first field of file

Hello all I have two files. 1. Pattern.txt - It contains patterns to be matched. It has large number of patterns to be matched. Cat Pattern.txt Ram Shyam Mohan Jhon I have another file which has actual data and records are delimted by single or multiple spaces. 2.... (8 Replies)
Discussion started by: krsnadasa
8 Replies

3. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies

4. Shell Programming and Scripting

Awk: print lines with one of multiple pattern in the same field (column)

Hi all, I am new to using awk and am quickly discovering what a powerful pattern-recognition tool it is. However, I have what seems like a fairly basic task that I just can't figure out how to perform in one line. I want awk to find and print all the lines in which one of multiple patterns (e.g.... (8 Replies)
Discussion started by: elgo4
8 Replies

5. UNIX for Advanced & Expert Users

Need command for grepping pattern lines with subsequent lines

Hi, I have a requirement like, I have a list of pattens in a file say pattern.txt, PHC111 PHC113 and in another file called master.lst i have entries like, PHC111 a b PHC112 a PHC113 b c PHC114 d e (5 Replies)
Discussion started by: rbalaj16
5 Replies

6. Shell Programming and Scripting

Grep the word from pattern line and update in subsequent lines till next pattern line reached

Hi, I have got the below requirement. please suggest. I have a file like, Processing Item is: /data/ing/cfg2/abc.txt /data/ing/cfg3/bgc.txt Processing Item is: /data/cmd/for2/ght.txt /data/kernal/config.klgt.txt I want to process the above file to get the output file like, ... (5 Replies)
Discussion started by: rbalaj16
5 Replies

7. Shell Programming and Scripting

awk - use fields from subsequent lines

I've run into a problem getting exactly what I want out of awk - some folks may recognize this as an output from Amazon's ec2-describe-instances: Given the following: INSTANCE i-4960f321 BLOCKDEVICE Line2Var2 TAG instance i-4960f321 Name web1 TAG instance i-4960f321... (2 Replies)
Discussion started by: colinjohnson
2 Replies

8. Shell Programming and Scripting

awk text record - prepend first field to all subsequent fields

Hello everyone, I've suddenly gotten very interested in sed and awk (and enjoying it quite a bit too) because of a large conversion project that we're working on. I'm currently stuck with a very inefficient process for processing text blocks. I'm sure someone here should be able to easily point out... (2 Replies)
Discussion started by: jameswatson3
2 Replies

9. Shell Programming and Scripting

Displaying lines of a file where the second field matches a pattern

Howdy. I know this is most likely possible using sed or awk or grep, most likely a combination of them together, but how would one go about running a grep like command on a file where you only try to match your pattern to the second field in a line, space delimited? Example: You are... (3 Replies)
Discussion started by: LordJezoX
3 Replies

10. Shell Programming and Scripting

find pattern and replace another field

HI all I have a problem, I need to replace a field in a file, but only in the lines that have some pattern, example: 100099C01101C00000000059394200701CREoperadora_TX 100099C01201C00000000000099786137OPERADORA_TX2 in the example above I need to change the first field from 1 to 2 only if... (3 Replies)
Discussion started by: sergiioo
3 Replies
Login or Register to Ask a Question