Sponsored Content
Top Forums Shell Programming and Scripting Linux shell script to insert new lines based on delimiter count Post 302986213 by Don Cragun on Tuesday 22nd of November 2016 05:14:09 AM
Old 11-22-2016
As long as the NUL bytes are field terminators (not field separators) and there are 80 fields per record, the following will add a <newline> character at the end of each input record in the file MED_BIL_accmasked.DAT and store the results in a file named MED_BIL_withNL.DAT:
Code:
tr '\0' '\r' < MED_BIL_accmasked.DAT |
awk '
BEGIN {	RS = ORS = "\r"
}
1
!(NR % 80) {	printf("\n")
}' |
tr '\r' '\0' > MED_BIL_withNL.DAT

I have tested the above code on a macOS system (using a BSD version of awk and it does what I understand your requirements to be. (But, since you didn't post your desired output for your sample input, I can't be sure.)

If you want to try the above code on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk or nawk.

If you are using gawk, it might let you get by with just:
Code:
gawk '
BEGIN {	RS = ORS = "\0"
}
1
!(NR % 80) {	printf("\n")
}' MED_BIL_accmasked.DAT > MED_BIL_withNL.DAT

but I haven't tested this with gawk and do not know that it will accept a NUL character as an input or output record separator.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Perl/shell script count the lines

Hi Guys, I want to write a perl/shell script do parse the following file input file content NPA-NXX SC 2084549 45 2084552 45 2084563 2007 2084572 45 2084580 45 3278411 45 3278430 45 3278493 530 3278507 530... (3 Replies)
Discussion started by: pistachio
3 Replies

2. Shell Programming and Scripting

insert leading zeroes based on the character count

Hi, I need add leading zeroes to a field in a file based on the character count. The field can be of 1 character to 6 character length. I need to make the field 14bytes. eg: 8351,20,1 8351,234,6 8351,2,0 8351,1234,2 8351,123456,1 8351,12345,2 This should become. ... (3 Replies)
Discussion started by: gpaulose
3 Replies

3. Shell Programming and Scripting

Shell script to put delimiter for a no delimiter variable length text file

Hi, I have a No Delimiter variable length text file with following schema - Column Name Data length Firstname 5 Lastname 5 age 3 phoneno1 10 phoneno2 10 phoneno3 10 sample data - ... (16 Replies)
Discussion started by: Gaurav Martha
16 Replies

4. Shell Programming and Scripting

Bash script to count and insert

Hi not sure if this is possible but I need some help with a bash script, I have a text file and on the first line that starts with 7150230 I need it to put a 1 at position 79 and a 2 at position 88, this is where it gets complicated, on the next line it finds that starts with 7150230 I then need it... (8 Replies)
Discussion started by: firefox2k2
8 Replies

5. Shell Programming and Scripting

Insert Columns before the last Column based on the Count of Delimiters

Hi, I have a requirement where in I need to insert delimiters before the last column of the total delimiters is less than a specified number. Say if the delimiters is less than 139, I need to insert 2 columns ( with blanks) before the last field awk -F 'Ç' '{ if (NF-1 < 139)} END { "Insert 2... (5 Replies)
Discussion started by: arunkesi
5 Replies

6. Shell Programming and Scripting

File Count Based on FileDate using Shell Script

I have file listed in my directory in following format -rwxrwxr-x+ 1 test test 4.9M Oct 3 16:06 test20141002150108.txt -rwxrwxr-x+ 1 test test 4.9M Oct 4 16:06 test20141003150108.txt -rwxrwxr-x+ 1 test test 4.9M Oct 5 16:06 test20141005150108.txt -rwxrwxr-x+ 1 test ... (2 Replies)
Discussion started by: krish2014
2 Replies

7. Shell Programming and Scripting

Removing duplicate lines on first column based with pipe delimiter

Hi, I have tried to remove dublicate lines based on first column with pipe delimiter . but i ma not able to get some uniqu lines Command : sort -t'|' -nuk1 file.txt Input : 38376KZ|09/25/15|1.057 38376KZ|09/25/15|1.057 02006YB|09/25/15|0.859 12593PS|09/25/15|2.803... (2 Replies)
Discussion started by: parithi06
2 Replies

8. Shell Programming and Scripting

awk joining multiple lines based on field count

Hi Folks, I have a file with fields as follows which has last field in multiple lines. I would like to combine a line which has three fields with single field line for as shown in expected output. Please help. INPUT hname01 windows appnamec1eda_p1, ... (5 Replies)
Discussion started by: shunya
5 Replies

9. Shell Programming and Scripting

Shell script count lines and sum numbers from multiple files

I want to count the number of lines, I need this result be a number, and sum the last numeric column, I had done to make this one at time, but I need to make this for a crontab, so, it has to be an script, here is my lines: It counts the number of lines: egrep -i String file_name_201611* |... (5 Replies)
Discussion started by: Elly
5 Replies

10. Shell Programming and Scripting

Split files based on row delimiter count

I have a huge file (around 4-5 GB containing 20 million rows) which has text like: <EOFD>11<EOFD>22<EORD>2<EOFD>2222<EOFD>3333<EORD>3<EOFD>44<EOFD>55<EORD>66<EOFD>888<EOFD>9999<EORD> Actually above is an extracted file from a Sql Server with each field delimited by <EOFD> and each row ends... (8 Replies)
Discussion started by: amvip
8 Replies
DAT.CONF(5)															       DAT.CONF(5)

NAME
dat.conf - configuration file for static registration of user-level DAT rdma providers DESCRIPTION
The DAT (direct access transport) architecture supports the use of multiple DAT providers within a single consumer application. Consumers implicitly select a provider using the Interface Adapter name parameter passed to dat_ia_open(). The subsystem that maps Interface Adapter names to provider implementations is known as the DAT registry. When a consumer calls dat_ia_open(), the appropriate provider is found and notified of the consumer's request to access the IA. After this point, all DAT API calls acting on DAT objects are automatically directed to the appropriate provider entry points. A persistent, administratively configurable database is used to store mappings from IA names to provider information. This provider infor- mation includes: the file system path to the provider library object, version information, and thread safety information. The location and format of the registry is platform dependent. This database is known as the Static Registry (SR) and is provided via entries in the dat.conf file. The process of adding a provider entry is termed Static Registration. Registry File Format * All characters after # on a line are ignored (comments). * Lines on which there are no characters other than whitespace and comments are considered blank lines and are ignored. * Non-blank lines must have seven whitespace separated fields. These fields may contain whitespace if the field is quoted with double quotes. Within fields quoated with double quotes, the backslash or qoute are valid escape sequences: * Each non-blank line will contain the following fields: - The IA Name. - The API version of the library: [k|u]major.minor where "major" and "minor" are both integers in decimal format. User-level examples: "u1.2", and "u2.0". - Whether the library is thread-safe: [threadsafe|nonthreadsafe] - Whether this is the default section: [default|nondefault] - The library image, version included, to be loaded. - The vendor id and version of DAPL provider: id.major.minor - ia params, IA specific parameters - device name and port - platform params, (not used) Example netdev entries for OpenFabrics rdma_cm providers, both v1.2 and v2.0 OpenIB-cma u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib0 0" "" ofa-v2-ib0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "ib0 0" "" NOTE: The OpenFabrics providers use <ia_params> to specify the device with one of the following: network address, network hostname, or netdev name; along with port number. The OpenIB- and ofa-v2- IA names are unique mappings. Reserved for OpenFabrics providers. The default location for this configuration file is /etc/dat.conf. The file location may be overridden with the environment variable DAT_OVERRIDE=/your_own_directory/your_dat.conf. SEE ALSO
25 March 2008 DAT.CONF(5)
All times are GMT -4. The time now is 04:33 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy