format output from while read line


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers format output from while read line
# 1  
Old 03-14-2008
format output from while read line

I have an output that I get from while read, I want to display it as the following, please help.

Original output from while read line loop:
This is my client=1
client version=2.3.4
OS version=4.5
This is my client=2
client version=1.5.6
OS version=6.7

I want it to look like this with ";" between them except the last one:
This is my client=1;client version=2.3.4;OS version=4.5
This is my client=2;client version=1.5.6;OS version=6.7
# 2  
Old 03-14-2008
Dala,

Can you show us what you have attempted so far?

Regards
# 3  
Old 03-17-2008
programName | perl -pe 's/\n/;/g; s/;/\n/ if $_ =~ /OS version/i'
# 4  
Old 03-17-2008
Quote:
Originally Posted by Franklin52
Dala,

Can you show us what you have attempted so far?

Regards
this is my code....
#!/bin/sh

syr_report()
{
while read -r line
do
case $line in
ClientOS*|MPFSrev*) echo -e $line | awk -v ORS=";" '{print} END { printf "" }';
esac

done < mpfsinfo
}

# Call function here
syr_report
# 5  
Old 03-17-2008
Quote:
Originally Posted by ShawnMilo
programName | perl -pe 's/\n/;/g; s/;/\n/ if $_ =~ /OS version/i'
Do you have this in bourne shell????
# 6  
Old 03-17-2008
Lets plan the whole thing a little, then it will be easier to understand:

1) we get information chunks and read them in the while-loop bit by bit. We have to set up a data structure to hold all the various pieces of information until we are ready to print it out wholly (to print a line).

2) There should be a certain condition defined for what makes the information "complete": is it that all the various pieces are there? (Have you "fields", which have to be filled and once all are filled the line is complete?) Is a line complete once a certain field is read? (in your case "OS version" is always the last field - is this what you intended or is this just by chance?)

3) What do you do with error conditions? What happens if you read i.e the following lines:

This is my client=2
client version=1.5.6
client version=1.6.7
OS version=6.7

or how about this:

This is my client=2
client version=1.5.6

You should be able to recognize such conditions and handle them somehow. Maybe incomplete records are OK (then you will have to find out somehow when an incomplete record ends), maybe they are not and your script should report an error.

Please answer these questions and then i will proceed to show you how this is implemented.

I hope this helps.

bakunin
# 7  
Old 03-17-2008
This output I get is from a server command, the output from the server command is consistant, the client name and the next 3 lines are the client information. From the server command I might have more than one client. I need to replace the fourth comma with a new line using sed.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Read line and print output

need help to print the below .. Content of file looks like below .. SCHEMA1. TABLE1 SCHEMA2. TABLE2 SCHEMA3. TABLE3 read lines from above file and print o/p as below print output like read 1st line and print SELECT SCHEMA1.TABLE1 print output like read 2st line and print ... (4 Replies)
Discussion started by: rocking77
4 Replies

2. Shell Programming and Scripting

How to read the output of a command line by line and pass it as a variable?

Hi, I have some 2000 names in a table like below. Java Oracle/SQL ANSI SQL SQL,DWH,DB DB&Java And by using for loop in my code i am able to get a single word but if there is any special character or space then it is considering as a next line. I have to execute the below queries in... (10 Replies)
Discussion started by: Samah
10 Replies

3. Shell Programming and Scripting

Format next line for ls output

hi i have 4 dir called old-dir1 old-dir2 dir3 dir4 now i need to grep only old dir named ls -d old* > outfileThe output will show as: cat outfile old-dir1 old-dir2Desired output is: old-dir1 old-dir2 (5 Replies)
Discussion started by: raghur77
5 Replies

4. Shell Programming and Scripting

How to read each line from input file, assign variables, and echo to output file?

I've got a file that looks like this (spaces before first entries intentional): 12345650-000005000GL140227 ANNUAL HELC FEE EN 22345650-000005000GL140227 ANNUAL HELC FEE EN 32345650-000005000GL140227 ANNUAL HELC FEE EN I want to read through the file line by line,... (6 Replies)
Discussion started by: Scottie1954
6 Replies

5. Shell Programming and Scripting

Read from text file;format and print output

Hi Following is the assumed input... Symmetrix ID : 12345 Originator Port wwn : 123456789 User-generated Name : 123456789/123456789 Sym Dev Dir:P LUN ------ ----- ----------------------- ---- --- ---- ---- ---- ------- 1234 ... (4 Replies)
Discussion started by: maddy.san
4 Replies

6. Shell Programming and Scripting

Modify a perl line to parse out and output to another format

Hey there... I am looking for a way to take the below contents ( small excerpt) of this file called PTR.csv ptrrecord,0000002e0cc0.homeoffice.anfcorp.com,,10.11.191.62,,,False,62.191.11.10.in-addr.arpa,,302400,default... (6 Replies)
Discussion started by: richsark
6 Replies

7. Shell Programming and Scripting

Print output and read input on same line

How do I print output and read input on the same line in ksh? echo Hello, what is your name? read name (1 Reply)
Discussion started by: robin_simple
1 Replies

8. Shell Programming and Scripting

read line and run a different command according to the output

Hi. I'm trying to write a script that reads a line on a file and runs a different command for a different line output. For example, if it finds the word "Kuku" on the line it sends mail to Kuku@kuku.com. Otherwise, it sends mail to Lulu@lulu.com. TIA. (2 Replies)
Discussion started by: Doojek9
2 Replies

9. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

10. Shell Programming and Scripting

Format a line for output

Hi all I have a problem which requires me to produce a line output in a specified format. I have looked around and see that there is typeset which would do the trick to pad a variable and as such ensure that its start position in a line is always the same. I have tried to use this, however it... (4 Replies)
Discussion started by: jhansrod
4 Replies
Login or Register to Ask a Question