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
# 15  
Old 11-11-2009
Quote:
Originally Posted by tip78

[...]
this one works 20 seconds slower :P
But seems to produce the expected result: the correct number of newlines Smilie

I mean:

Code:
% perl -e 'while(<>){
    if(/: (network\d+?)$/){print "\n$1";next}
    /: (\d+?)$/;print ":$1"
}' infile
<-- this
network1:15618:27:74:0:0:0
network2:1117:0:0:0:0:0% <-- and this

# 16  
Old 11-11-2009
Radoulov: Thanks... that worked....

Tip78: Dunno... must be gremlins in the system somewhere... Thanks a lot for your help and suggestions though
# 17  
Old 11-11-2009
Quote:
Originally Posted by radoulov
But seems to produce the expected result: the correct number of newlines Smilie

I mean:

Code:
% perl -e 'while(<>){
    if(/: (network\d+?)$/){print "\n$1";next}
    /: (\d+?)$/;print ":$1"
}' infile
<-- this
network1:15618:27:74:0:0:0
network2:1117:0:0:0:0:0% <-- and this

didnt get it..
for me
Code:
perl -e 'while(<>){if(/: (network\d+?)$/){print "\n$1";next} /: (\d+?)$/;print ":$1"}' infile >outfile

works fine
tip78
# 18  
Old 11-11-2009
Quote:
Originally Posted by tip78
didnt get it..
for me
Code:
perl -e 'while(<>){if(/: (network\d+?)$/){print "\n$1";next} /: (\d+?)$/;print ":$1"}' infile >outfile

works fine
I'll try to explain.

Code:
% cat infile 
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
Name: network2
  Dropped packets: 1117
  Dropped packets for IPv6: 0
  Dropped packets: 0
  Dropped packets for IPv6: 0
  Failed RADIUS Authentication procedures: 0
  Failed RADIUS Accounting procedures: 0
% perl -e 'while(<>){if(/: (network\d+?)$/){print "\n$1";next} /: (\d+?)$/;print ":$1"}' infile

network1:15618:27:74:0:0:0
network2:1117:0:0:0:0:0%

You get an extra newline at the beginning (the one above network1) and the last newline is missing
(your last line is incomplete, there is no newline after the very last 0).
# 19  
Old 11-11-2009
Code:
while(<DATA>){
	print "\n" if /^Name/ && $.>1;
	print $1,":" if /.*:\s*(.*)/;	
}
__DATA__
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
Name: network2
Dropped packets: 1117
Dropped packets for IPv6: 0
Dropped packets: 0
Dropped packets for IPv6: 0
Failed RADIUS Authentication procedures: 0
Failed RADIUS Accounting procedures: 0

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