Merge lines in a file with Awk - incorrect output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merge lines in a file with Awk - incorrect output
# 8  
Old 07-14-2009
The posted example doesn't have the exact format of the file.

Don't indent the lines manually but copy the file, paste it in the editbox and press the # above the edit box to place it within code tags.
# 9  
Old 07-14-2009
Is this correct?


Code:
FastEthernet0/0 is up, line protocol is up
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 0 interface resets
Serial1/0:0 is up, line protocol is up
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 output errors, 0 collisions, 0 interface resets


Thanks
# 10  
Old 07-14-2009
Except the spaces of the 2nd and the 3th line, the output is correct with your command of the 1st post, give this a try:

Code:
awk '{$1=$1}ORS=NR%3?",":RS'

# 11  
Old 07-14-2009
Thanks,

That removes spacing between the first "," and the "0"; however it is still missing the first and second line details:


Code:
$ awk '{$1=$1}ORS=NR%3?",":RS' test2

,0 output errors, 0 collisions, 0 interface resetsred
,0 output errors, 0 collisions, 0 interface resetsred, 0 abort

When viewing the 'code' snippet with a web browser, that is how my original file looks - Line 1 of 3 to the left, with 2nd and 3rd slightly indented. Then the next 'interesting' data begins.


Unless there are changes in the awk handling between Fedora and CentOS, I'm stumped why the original awk syntax worked perfectly.


Just a note - Thank you for the assistance me so far with this. It is appreciated.
# 12  
Old 07-14-2009
How does the output looks like if you redirect it to a file?

Code:
awk '{$1=$1}ORS=NR%3?",":RS' test2 > file

# 13  
Old 07-14-2009
Yeah, I tried that too. The output is still misses lines 1 and 2

Code:
$ awk '{$1=$1}ORS=NR%3?",":RS' test2 > file
$ cat file
,0 output errors, 0 collisions, 0 interface resetsred
,0 output errors, 0 collisions, 0 interface resetsred, 0 abort


Ok, I've removed the second 'data' bit and will concentrate on getting the 1st 3 lines merged first, I get:

Code:
$ cat test2_basic
FastEthernet0/0 is up, line protocol is up
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 0 interface resets


Running your original syntax, gives me:

Code:
$ awk '{$1=$1}ORS=NR%3?",":RS' test2_basic
,0 output errors, 0 collisions, 0 interface resetsred

Changing the "3" to "2" gives:

Code:
$ awk '{$1=$1}ORS=NR%2?",":RS' test2_basic
,0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
,[username@localhost]$  interface resets

- Note the "interface resets in the same line as my prompt.
# 14  
Old 07-27-2009
Hi just in case anyone reads this thread wants to know if it was solved.

I eventually realised the lines were, in fact, been truncated correctly. When 'cat <output-file>', I had the output below:

Code:
,     0 output errors, 0 collisions, 0 interface resetsred
,     0 output errors, 0 collisions, 0 interface resetsred down
,     0 output errors, 0 collisions, 150 interface resetsd, 3 abort
,     0 output errors, 0 collisions, 150 interface resetsored, 9 abort

But, when going into the file with vi, for example, I had:

Code:
FastEthernet0/0 is up, line protocol is up ^M,     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored^M,     0 output errors, 0 collisions, 0 interface resets
FastEthernet0/1 is administratively down, line protocol is down ^M,     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored^M,     0 output errors, 0 collisions, 0 interface resets
Serial1/0:0 is up, line protocol is up ^M,     8 input errors, 0 CRC, 8 frame, 0 overrun, 0 ignored, 3 abort^M,     0 output errors, 0 collisions, 150 interface resets
Serial1/0:12 is up, line protocol is up ^M,     26 input errors, 10 CRC, 16 frame, 0 overrun, 0 ignored, 9 abort^M,     0 output errors, 0 collisions, 150 interface resets

So the syntax
Code:
awk 'ORS=NR%3?",":"\n"' FILE

was correct, it was just not displaying correctly on terminal.


Cheers
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to add lines with symbol to output file

In the awk below which does execute I get output that is close, except for all the lines that start with a # are removed. Some lines have one others two or three and after the script adds the ID= to the fields below the pattern in the awk, I can not seem to add the # lines back to the output. ... (5 Replies)
Discussion started by: cmccabe
5 Replies

2. Shell Programming and Scripting

E-mail Output Merge Lines for Some Text..

Hi all. This is the content of the text file used for the e-mail: TM ICP-EDW BILLING REGISTER USAGE BREAKDOWN_01062014.csv TM_ICP_EDWH_FICL_13062014.TXT TM_ICP_EDWH_FICL_16062014.TXT TM_ICP_EDW_Detailed Payment Journal Report_13062014.txt TM_ICP_EDW_Detailed Payment Journal... (9 Replies)
Discussion started by: aimy
9 Replies

3. Shell Programming and Scripting

Df -h | awk - output incorrect matching

Running solaris 9, on issuing the follwing command df -h | awk '$5 > 45 {print}' Filesystems with utilisation > 45% are being displayed as well as those between 5 and-9%!!! (3 Replies)
Discussion started by: squrcles
3 Replies

4. UNIX for Dummies Questions & Answers

ID incorrect field values in dat file and output to new file

Hi All I have a .dat file, the values are seperated by ". I wish to identify all field values in field 14 that are not '01-APR-2013' band then copy those records to a new file. Can anyone suggest the UNIX command required. Thanks in advance Andy (2 Replies)
Discussion started by: aurum1313
2 Replies

5. Shell Programming and Scripting

Find duplicates in column 1 and merge their lines (awk?)

Hi, I have a file (sorted by sort) with 8 tab delimited columns. The first column contains duplicated fields and I need to merge all these identical lines. My input file: comp100002 aaa bbb ccc ddd eee fff ggg comp100003 aba aba aba aba aba aba aba comp100003 fff fff fff fff fff fff fff... (5 Replies)
Discussion started by: falcox
5 Replies

6. Shell Programming and Scripting

Merge multiple lines in same file with common key using awk

I've been a Unix admin for nearly 30 years and never learned AWK. I've seen several similar posts here, but haven't been able to adapt the answers to my situation. AWK is so damn cryptic! ;) I have a single file with ~900 lines (CSV list). Each line starts with an ID, but with different stuff... (6 Replies)
Discussion started by: protosd
6 Replies

7. Shell Programming and Scripting

awk file comparison, x lines after matching as output

Hello, I couldn't find anything on the Forum that would help me to solve this problem. Could any body help me process below data using awk? I have got two files: file1: Worker1: Thomas Position: Manager Department: Sales Salary: $5,000 Worker2: Jason Position: ... (5 Replies)
Discussion started by: killerbee
5 Replies

8. Shell Programming and Scripting

Awk: How to merge duplicate lines and print in a single

The input file: >cat module1 200611051053 95 200523457498 35 200617890187 57 200726098123 66 200645676712 71 200744556590 68 >cat module2 200645676712 ... (10 Replies)
Discussion started by: winter9
10 Replies

9. Shell Programming and Scripting

awk : deleting specific incorrect lines

Hello friends, I searched in forums for similar threads but what I want is to have a single awk code to perform followings; I have a big log file going like this; ... 7450494 1724465 -47 003A98B710C0 7450492 1724461 -69 003A98B710C0 7450488 1724459 001DA1915B70 trafo_14:3 7450482... (5 Replies)
Discussion started by: enes71
5 Replies

10. Shell Programming and Scripting

AWK Merge Fields for Print Output

I've got a file with each record on a separate line and each record contains 34 fields separated by a colon and i'm trying to re-arrange the order of the fields and merge together certain fields separated by a slash (like field7/field28). I tried using an awk print statement like awk -F: 'BEGIN... (5 Replies)
Discussion started by: RacerX
5 Replies
Login or Register to Ask a Question