Sed or Awk Question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sed or Awk Question
# 1  
Old 12-18-2006
Sed or Awk Question

I have some text:


0400-0427 NA Czech Republic R. Prague 5990ca, 6200, 7345
0400-0456 NA, As Romania R. Romania Int'l 6115, 9515, 9690,
11895
0400-0500 NA U. S. A. WYFR 6065, 6855, 9505,
9715
0400-0500 NA,Eu,Af U. S. A. WEWN 5810, 5850
0400-0500 NA Russia V. of Russia 7150, 7350, 9840,
12010,
12030, 13665, 15425
0400-0500 NA China China R. Int'l 6190
0400-0600 Am, Sa U. S. A. WRMI 9955
0400-0600 Am U. S. A. WHRI 5860, 7315 Su-M, 7490

I've been trying to get each station on one line, but I can't seem to get it. Any help is appreciated.
# 2  
Old 12-18-2006
what makes multiple lines belong to the same "station" (whatever 'station' means)?
# 3  
Old 12-18-2006
They're shortwave radio broadcasts.

They should look something like this:

UTC Time Notes Country Station Frequencies
0000-0015 Am, Su U. S. A. WRMI 9955
0000-0030 NA Egypt R. Cairo 11885
0000-0057 NA Netherlands R. Netherlands 6165bo
0000-0059 Am Spain R. Ext. Espana 6055
0000-0100 NA U. S. A. WYFR 6085, 9505, 9715
0000-0100 Am U. S. A. WHRI 7315, 7490
0000-0100 NA Bulgaria R. Bulgaria 7400, 9700
0000-0100 NA Japan R. Japan 6145ca
0000-0100 NA China China R. Int'l 6020al, 9570al
0000-0100 LA U. S. A. WYFR 11720
0000-0100 NA U. S. A. KTBN 7505, 15590
0000-0200 NA U. S. A. WWCR4 7465
0000-0330 NA U. S. A. WBCQ 9330
0000-0400 NA,Eu,Af U. S. A. WEWN 5810
0000-0400 Am U. S. A. WINB 9265
0000-0400 Am, Tu-Sa U. S. A. WRMI 7385
# 4  
Old 12-18-2006
(making some assumptions here):
nawk -f stations.awk myStationFile.txt

stations.awk:
Code:
# if a line starts with 'NNNN-' (where N is a number) - output a NewLine (for ALL but the FIRST input line AND the input line withOUT NewLine. And proceed to the next input line
/^[0-9][0-9]*-/ { printf("%s%s" , (FNR==1) ? "" : "\n", $0) ; next }

# OTHERWISE, ouput "," and the line - withOUT a new line.
{ printf "," $0 }


Last edited by vgersh99; 12-18-2006 at 05:58 PM..
# 5  
Old 12-18-2006
It does get it all on one line, but results look like this:

Code:
1600-1700 NA         U. S. A.        WYFR              11565, 11830, 13695,,                                                       17760

Also, if you could explain your solution I'd appreciate.
# 6  
Old 12-18-2006
given a sample file in your first post, my output looks like:
Code:
0400-0427 NA Czech Republic R. Prague 5990ca, 6200, 7345
0400-0456 NA, As Romania R. Romania Int'l 6115, 9515, 9690,,11895
0400-0500 NA U. S. A. WYFR 6065, 6855, 9505,,9715
0400-0500 NA,Eu,Af U. S. A. WEWN 5810, 5850
0400-0500 NA Russia V. of Russia 7150, 7350, 9840,,12010,,12030, 13665, 15425
0400-0500 NA China China R. Int'l 6190
0400-0600 Am, Sa U. S. A. WRMI 9955
0400-0600 Am U. S. A. WHRI 5860, 7315 Su-M, 7490

# 7  
Old 12-18-2006
Yes you're correct, sorry I must've pasted the first bit of text after I removed the excess whitespace with sed. Anyway, would you mind explaining your solution.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

yet another sed/awk question

Unix Guru's , I have a file all_files.txt containing data as follows all_files.txt first file : /a/b/c/file.sh first second CLIENT1 second file : /a/b/c/file.sh first second CLIENT1 first file : /a/b/c/file.sh first second CLIENT2 second file : /a/b/c/file.sh first second... (6 Replies)
Discussion started by: jville
6 Replies

2. Shell Programming and Scripting

awk question (or sed, if that's better to use)

Hi all, I'm pretty new to Unix (Sun) scripting, and wanted to try doing what many would probably believe is pretty easy. I tried searching the forums and only found bits and pieces of things I wanted to do below, but after many tries had a very hard time piecing it together. Would anyone... (1 Reply)
Discussion started by: chatguy
1 Replies

3. Shell Programming and Scripting

sed awk question

I have a string that I need to remove data that is not within <>. For example: this is a <test> of removing <text> outside brackets output should be: <test> <text> or: test text I can use either of the two outputs but so far I have not had much luck removing all of the other text. The... (15 Replies)
Discussion started by: chewbacca72
15 Replies

4. Shell Programming and Scripting

sed or awk question

Hello expert, I have an output file with few thousand lines similar like below : &quot;Future Netmgmt&quot; &quot;10.99.16.0&quot; &quot;N&quot; &quot;10&quot; &quot;10.0.0.0&quot; &quot;Circuitless-IP&quot; &quot; &quot; &quot;255.255.254.0&quot; &quot;Future Netmgmt&quot; &quot;10.99.18.0&quot; &quot;N&quot; &quot;10&quot; &quot;10.0.0.0&quot; &quot;Circuitless-IP&quot; &quot; &quot; &quot;255.255.254.0&quot; &quot;WAAS loopbacks&quot; &quot;10.99.20.0&quot;... (6 Replies)
Discussion started by: dannytrinh
6 Replies

5. UNIX for Dummies Questions & Answers

sed or awk question

hi there! i have a question that i hope someone may be able to help me with. i am using the 'paste' function to concatenate to files together. $ paste A B output: A B C D However I want to get rid of the space in between - I have tried the following with no luck: #... (2 Replies)
Discussion started by: thegant
2 Replies

6. UNIX for Dummies Questions & Answers

sed and awk question

Hi, I have to write a script that goes through every *.cpp file in the current directory and if any file has #includes of non-system header files (those with double quotes around them), then I need to print out those header files within the quotes. I've figured out how to run a for loop and find... (4 Replies)
Discussion started by: MEllis5
4 Replies

7. Shell Programming and Scripting

to sed or awk, that is the question?

I have a text file with about 790 lines, at the end of many of the lines there is the text string 'f4' I want this text to be 'f2' What is the best way to do this? is it sed or awk? or something else? how? Also, there is maybe fifty occasions where f4 appears near the begining of the line that I... (2 Replies)
Discussion started by: ajp7701
2 Replies

8. Shell Programming and Scripting

sed and awk question

hello, I have this in a file server_name=DB1 hostname=db1 I want to change hostname value to `hostname`. Any idea? and server_name value to toUPPER (`hostname`). Any idea? thanks (3 Replies)
Discussion started by: melanie_pfefer
3 Replies

9. UNIX for Advanced & Expert Users

A question on using sed or awk

Hi I have a pattern like this. repeating many lines CHANGE #13 TYP:22 CLS: 21 AFN:12 DBA:0x0040a15f OBJ:41142 SCN:0x0000.00036b3e SEQ:1 OP:11.2 CHANGE #15 TYP:32 CLS: 32 AFN:212 DBA:0x0040a15f OBJ:41143 SCN:0x0000.00046b3e SEQ:1 OP:13.3 . And i am trying to do the following: a) I need to get... (2 Replies)
Discussion started by: hare
2 Replies

10. Shell Programming and Scripting

Awk Sed question

i have to search direcotry with a Min or Max size and but with a standard find.... it gives me the size of the i-node of the directory. A friend told me to use awk/sed command to search directories. he also gave me this command: find -type d -exec du '{}' \; | awk -v sz=10 '{if... (0 Replies)
Discussion started by: AkiraSama
0 Replies
Login or Register to Ask a Question