Parsing from file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing from file
# 1  
Old 11-27-2010
Parsing from file

Hello All,

I am new to Shell programming, and I need to extract from Input_file some data and send it to a new File. Here is the Input_file structure:-
Code:
General information for record #1
Specific Information for record #1
Permanent name: XXXXX
Addr name: 11AA
Close information for record #1
General information for record #2
Specific Information for record #2
Permanent name: YYYYY
Addr name: 22BB
Close information for record #2
General information for record #3
Specific Information for record #3
Permanent name: ZZZZZ
Addr name: 33CC
Close information for record #3
...
...

Here is the new Output_file structure i would like to have:-

Code:
Permanent name:     Addr name:
===========     =========
XXXXX                   11AA
YYYYY                    22BB
ZZZZ                     33CC 
...
....

Thanks in advance to anyone who'll reply.
Regards,
schureki

Last edited by radoulov; 11-27-2010 at 01:27 PM.. Reason: Code tags, please!
# 2  
Old 11-27-2010
Code:
 awk 'BEGIN{printf "%s\n%s\n","Permanent name: Addr name:","=============== ========="}/^Permanent/{x=$NF}/^Addr/{print x,$NF}' OFS=\\t\\t file
Permanent name: Addr name:
=============== =========
XXXXX           11AA
YYYYY           22BB
ZZZZZ           33CC

# 3  
Old 11-27-2010
Code:
echo "Permanent name:     Addr name:\n===========     =========">output; 
grep name Input_file | while read a ; do echo "${a##*: }" ; done | paste - - >>output

Also
Code:
$ echo "Permanent name: Addr name:\n=============== ==========" >output ; grep name Input_file | while read a ; do echo "${a##*: }" ; done | xargs -n2 printf "%-15s %-10s\n" >>output
$ cat output
Permanent name: Addr name:
=============== ==========
XXXXX           11AA
YYYYY           22BB
ZZZZZ           33CC


Last edited by ctsgnb; 11-27-2010 at 03:26 PM..
# 4  
Old 11-27-2010
@danmero:

Little question, why the following command isn't valid?
Code:
awk '/^Permanent/{x=$NF}/^Addr/{y=$NF}{print x,y}' file

# 5  
Old 11-27-2010
Quote:
Originally Posted by cabrao
@danmero:

Little question, why the following command isn't valid?
Code:
awk '/^Permanent/{x=$NF}/^Addr/{y=$NF}{print x,y}' file

@cabrao

Because the {print x,y} will apply to every line

When the first line is scanned, no condition is met so x is not set, neither y, so the {print x,y} will print an empty line , ... and so on.

When line containing the first Permanent name: XXXXX is met , x is set ... but not y! so XXXXX will be displayed ... and so on

So you might want to print x,y when you are sure they are both set

According to the fact that x is set before y, you must wait for y to be set : when y is set, you know that x is also set.

So in fact you might want to print when you know that the condition of y is met

This means you have to include the print x,y in the same curly brace than the y one for which the /^Addr/ condition applies... considere :

Code:
awk '/^Permanent/{x=$NF}/^Addr/{y=$NF;print x,y}' Input_file
XXXXX 11AA
YYYYY 22BB
ZZZZZ 33CC


Last edited by ctsgnb; 11-27-2010 at 04:12 PM..
# 6  
Old 11-27-2010
Thanks ctsgnb, everything is clear Smilie
# 7  
Old 11-28-2010
Could you please show how the script would be if on the "Addr name: " line, the line will be "Addr Index:"
so we will have to identify "name" and "Index". I could not figured it up by myself.

Thanks a lot!!!
schureki
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

File Parsing

Hi Gurus, i have files like this and i want to rename it. server1_0_Log0000597500 server1_0_Log0000597501 server1_0_Log0000597502 server1_0_Log0000597503 server1_0_Log0000597504 server1_0_Log0000597505 server1_0_Log0000597506 server1_0_Log0000597507 server1_0_Log0000597508... (7 Replies)
Discussion started by: fedora132010
7 Replies

2. Shell Programming and Scripting

parsing data from a big file using keys from another smaller file

Hi, I have 2 files format of file 1 is: a1 b2 a2 c2 d1 f3 format of file 2 is (tab delimited): a1 1.2 0.5 0.06 0.7 0.9 1 0.023 a3 0.91 0.007 0.12 0.34 0.45 1 0.7 a2 1.05 2.3 0.25 1 0.9 0.3 0.091 b1 1 5.4 0.3 9.2 0.3 0.2 0.1 b2 3 5 7 0.9 1 9 0 1 b3 0.001 1 2.3 4.6 8.9 10 0 1 0... (10 Replies)
Discussion started by: Lucky Ali
10 Replies

3. Shell Programming and Scripting

Parsing of file for Report Generation (String parsing and splitting)

Hey guys, I have this file generated by me... i want to create some HTML output from it. The problem is that i am really confused about how do I go about reading the file. The file is in the following format: TID1 Name1 ATime=xx AResult=yyy AExpected=yyy BTime=xx BResult=yyy... (8 Replies)
Discussion started by: umar.shaikh
8 Replies

4. Shell Programming and Scripting

Parsing file, yaml file? Extracting specific sections

Here is a data file, which I believe is in YAML. I am trying to retrieve just the 'addon_domains" section, which doesnt seem to be as easy as I had originally thought. Any help on this would be greatly appreciated!! I have been trying to do this in awk and mostly bash scripting instead of perl... (3 Replies)
Discussion started by: Rhije
3 Replies

5. UNIX for Dummies Questions & Answers

Script for parsing details in a log file to a seperate file

Hi Experts, Im a new bee for scripting, I would ned to do the following via linux shell scripting, I have an application which throws a log file, on each action of a particular work with the application, as sson as the action is done, the log file would vanish or stops updating there, the... (2 Replies)
Discussion started by: pingnagan
2 Replies

6. Shell Programming and Scripting

File Parsing Help

Hello, I have a file which contains groups of fields. These groups are separated by a blank line, to form a logical record. Each line consists of a field-value pair. If want to find all records where field 'd' has a value of '4' and if it does, I want the value of field 'a' (from the... (4 Replies)
Discussion started by: brawnr
4 Replies

7. Shell Programming and Scripting

Perl parsing compared to Ksh parsing

#! /usr/local/bin/perl -w $ip = "$ARGV"; $rw = "$ARGV"; $snmpg = "/usr/local/bin/snmpbulkget -v2c -Cn1 -Cn2 -Os -c $rw"; $snmpw = "/usr/local/bin/snmpwalk -Os -c $rw"; $syst=`$snmpg $ip system sysName sysObjectID`; sysDescr.0 = STRING: Cisco Internetwork Operating System Software... (1 Reply)
Discussion started by: popeye
1 Replies

8. Shell Programming and Scripting

need help in Parsing a CSV file and generate a new output file

Hi Scripting Gurus, I am trying to parse a csv file and generate a new output file. The input file will be a variable length in turns of rows and columns. output file will have 8 columns. we have three columns from the header for each set. just to give little bit more clarification each row... (15 Replies)
Discussion started by: vkr
15 Replies

9. Shell Programming and Scripting

Finding & Moving Oldest File by Parsing/Sorting Date Info in File Names

I'm trying to write a script that will look in an /exports folder for the oldest export file and move it to a /staging folder. "Oldest" in this case is actually determined by date information embedded in the file names themselves. Also, the script should only move a file from /exports to... (6 Replies)
Discussion started by: nikosey
6 Replies

10. Shell Programming and Scripting

Help me with parsing this file

Hi, I need a shell script that would parse this file /usr/share/i18n/locales/aa_DJ:title "Afar language locale for Djibouti (Cadu/Laaqo Dialects)." /usr/share/i18n/locales/aa_ER:title "Afar language locale for Eritrea (Cadu/Laaqo Dialects)." /usr/share/i18n/locales/aa_ER@saaho:title... (2 Replies)
Discussion started by: eamani_sun
2 Replies
Login or Register to Ask a Question