Visit Our UNIX and Linux User Community


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

Previous Thread | Next Thread
Test Your Knowledge in Computers #308
Difficulty: Easy
The first computer bug was created by a broken keyboard input.
True or False?

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

Featured Tech Videos