record separator


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting record separator
# 1  
Old 03-02-2006
record separator

can anyone tell me any way to change record separator (default is new line).
RS in nawk as not working.
Thanks in advance.

Regards
Rochit
# 2  
Old 03-02-2006
Quote:
Originally Posted by rochitsharma
can anyone tell me any way to change record separator (default is new line).
RS in nawk as not working.
Thanks in advance.

Regards
Rochit
could you define 'not working', pls?
An example might be helpful.

P.S. The 'out-of-the-box' awk's can only define RS as single characters - no regex for RS.
# 3  
Old 03-02-2006
my in put file is:

<CRM:MS=23746,............................;
<EN:MS=23746..........................;
................................................;
<CRM:5766,..............;
<OP:.................................;

my input file looks like this. in place of dots there are some more parameters.
what i want is that the record separator new line (currently ) is replaced. i want the script to accept <CRM: as new field separatori.e my output file should look like:

<CRM:MS=23746,............................;<EN:MS=23746..........................;.................. ..............................;
<CRM:5766,..............;<OP:.................................;

it will be very nice of you if you can help.

Regards
Rochit
# 4  
Old 03-02-2006
use 'gawk' if you can:
Code:
#
# set the RecordSeparator to '<CRM:'
#
# for the FIRST line - reevaluate the record equal to itself
# for any OTHER line - reevaluate the record appending the RecordSeparator
# to the beginning of the record.
#
# after the reevaluattion is done - PRINT the record. 'PRINT' is implicit as a
# result of the record re-evaluation.
#
gawk -v RS='<CRM:' '$1=(FNR==1) ? $1 : RS $1' myFile

or with any other awk without using an RS:
Code:
# for the FIRST line/record - print it out (withOUT a new line) and o to the next line
FNR==1 { printf ;next }
#
# for any OTHER (other than the first) line/record:
# if the line/record starts with '<CRM:' - print the new line '\n' followed by
# a line itself.
# if the line/record does NOT start with '<CRM:' - print the line withOUT
# a new line '\n'
{printf (/^<CRM:/) ? "\n" $0 : $0}

# print new line '\n' after the LAST line processed
END { printf "\n" }


Last edited by vgersh99; 03-04-2006 at 12:26 PM..
# 5  
Old 03-02-2006
please could you explain the working of both the codes.

Regards
Rochit
# 6  
Old 03-02-2006
Quote:
Originally Posted by rochitsharma
please could you explain the working of both the codes.

Regards
Rochit
see above.
# 7  
Old 03-02-2006
thanks alot.

Code looks fine. i'll try it and come back to you tommorrow.
thanks for the explanation too.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with awk regular expression for RS record separator

Hi, I'm using gawk to read a text file and count the sentences. I want to use a record separator of a period, exclamation mark and a question mark. The problem is that the file contains words like "Mr. Smith" so the periods in the appellation are tripping my record separator. This is my... (12 Replies)
Discussion started by: 1Brajesh
12 Replies

2. Shell Programming and Scripting

Use string as Record separator in awk

Hello to all, Please some help on this. I have the file in format as below. How can I set the record separator as the string below in red "No. Time Source Destination Protocol Length Info" I've tried code below but it doesn't seem to... (6 Replies)
Discussion started by: cgkmal
6 Replies

3. Shell Programming and Scripting

Extract timestamp from first record in xml file and it checks if not it will replace first record

I have test.xml <emp><id>101</id><name>AAA</name><date>06/06/14 1811</date></emp> <Join><id>101</id><city>london</city><date>06/06/14 2011</date></join> <Join><id>101</id><city>new york</city><date>06/06/14 1811</date></join> <Join><id>101</id><city>sydney</city><date>06/06/14... (2 Replies)
Discussion started by: vsraju
2 Replies

4. Shell Programming and Scripting

awk - single quotes as record separator

How do I use single quotes as record separator in awk? I just couldn't figure that out. I know how to use single quotes as field separator, and double quotes as both field and record separator ... (1 Reply)
Discussion started by: locoroco
1 Replies

5. Shell Programming and Scripting

apply record separator to multiple files within a directory using awk

Hi, I have a bunch of records within a directory where each one has this form: (example file1) 1 2 50 90 80 90 43512 98 0909 79869 -9 7878 33222 8787 9090 89898 7878 8989 7878 6767 89 89 78676 9898 000 7878 5656 5454 5454 and i want for all of these files to be... (3 Replies)
Discussion started by: amarn
3 Replies

6. Shell Programming and Scripting

awk, string as record separator, transposing rows into columns

I'm working on a different stage of a project that someone helped me address elsewhere in these threads. The .docs I'm cycling through look roughly like this: 1 of 26 DOCUMENTS Copyright 2010 The Age Company Limited All Rights Reserved The Age (Melbourne, Australia) November 27, 2010... (9 Replies)
Discussion started by: spindoctor
9 Replies

7. Shell Programming and Scripting

Using > as record separator

I have tried to use ">" as record separator, but it doesn't work. I have tried this: awk BEGIN{RS=">"}'{print $0}' input output: awk: BEGIN{RS=>}{print $0} awk: ^ syntax error awk BEGIN{RS="\>"}'{print $0}' input awk: BEGIN{RS=\>}{print $0} awk: ^ backslash not... (2 Replies)
Discussion started by: locoroco
2 Replies

8. Shell Programming and Scripting

awk - double quotes as record separator

How do I use double quotes as a record seperator in awk? (4 Replies)
Discussion started by: locoroco
4 Replies

9. Shell Programming and Scripting

How to add record separator after certain lines

How to add record separator after certain lines? I am faicing issue where some lines have result as successive line & some are not having. how can I add record separator after every record here is example of data I have (line numbers are not present in data): 1. <enabled="true" name="dSuite1"... (7 Replies)
Discussion started by: sach253
7 Replies

10. Shell Programming and Scripting

awk & cut record separator problem

Hi All, I've got some strange behaviour going on when trying to manipulate a file that contains spaces. My input file looks something like this: xxxxxxxxx,yyyy,sss sss sss,bbbbbbb If I use awk: When running from the command line I get: sss sss sss But when running from a... (7 Replies)
Discussion started by: pondlife
7 Replies
Login or Register to Ask a Question