how to implement in one-line awk in a fixed file having no delimiter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to implement in one-line awk in a fixed file having no delimiter
# 8  
Old 01-18-2011
Are these lines indeed 2101 characters long or do you have linefeed characters in between? This command only works with records that a in one line as suggested, so spurious linefeeds need to be removed. If on Solaris, use /usr/xpg4/bin/awk or nawk
# 9  
Old 01-18-2011
Splitting each byte into a field by setting FS to nothing doesn't work on most of the awks except gawk and the newer version of the original awk (maintained by professor Kernighan). Even if when it worked, it is very inefficient. Much more portable and efficient with substr($0,435,1) although $435 looked more elegant.
This User Gave Thanks to binlib For This Post:
# 10  
Old 01-18-2011
Thanks binlib! I never realized this, although it works in mawk too. But POSIX says that behaviour is unspecified. So it becomes:
Code:
awk 'substr($0,435,1)~/[12]/{print>f;next}1' f=new infile > old

# 11  
Old 01-18-2011
Thank you for letting us know that it worked in mawk also.
I remember when Neo asked for suggestions to improve this site, somebody mentioned an environment where we can access different OSes so that we can test our solutions on the systems that we don't have. I imagine with a name like unix.com, this site should be able to find sponsors to donate at least some kind of virtual machines.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk issue splitting a fixed-width file containing line feed in data

Hi Forum. I have the following script that splits a large fixed-width file into smaller multiple fixed-width files based on input segment type. The main command in the script is: awk -v search_col_pos=$search_col_pos -v search_str_len=$search_str_len -v segment_type="$segment_type"... (8 Replies)
Discussion started by: pchang
8 Replies

2. Shell Programming and Scripting

Join the line on delimiter using sed/awk in UNIX

I've input as , abcd| ef 123456| 78| 90 Desired output as, abcdef 1234567890 Anyone please give the solution. (5 Replies)
Discussion started by: jinixvimal
5 Replies

3. Red Hat

Converting fixed width file to pipe delimiter in Linux(red-hat)

Hi, I am facing a typical scenario for AWK command . In HP- UNIX is behave as expected but in red hat linux same awk code is not give the same result. The below code is for convert the fixed width file to pipe delimiter file in HP-unix server. awk code: #!/bin/awk -f NR!=1... (11 Replies)
Discussion started by: brij_abhi
11 Replies

4. Shell Programming and Scripting

Adding delimiter to a fixed pattern of date

I have a text file as below: jan16201413:17PM jan1620143:17PM jan1620143:17PM jan1620143:17PM jan1620143:17PM I want to add a delimeter which will be space to the date part as below: jan 16 2014 13:17 PM jan 16 2014 3:17 PM jan 16 2014 3:17 PM jan 16 2014 3:17 PM jan 16... (13 Replies)
Discussion started by: Sharma331
13 Replies

5. Shell Programming and Scripting

Need next line as a space delimiter in awk

Hi,Below is the output for p3fi_dev services 1/app/oracle> . ./oraprofile_p3fi_dev p3fi_dev_01 (P):/devoragridcn_01/app/oracle> srvctl config service -d p3fi_dev p3fi_p3fi_dev.world PREF: p3fi_dev_01 AVAIL: p3fi_dev_02 pplnet_p3fidev PREF: p3fi_dev_01 AVAIL: p3fi_dev_02 nexus_p3fidev PREF:... (3 Replies)
Discussion started by: Vishal_dba
3 Replies

6. Shell Programming and Scripting

Implement in one line sed or awk having no delimiter and file size is huge

I have file which contains around 5000 lines. The lines are fixed legth but having no delimiter.Each line line contains nearly 3000 characters. I want to delete the lines a> if it starts with 1 and if 576th postion is a digit i,e 0-9 or b> if it starts with 0 or 9(i,e header and footer) ... (4 Replies)
Discussion started by: millan
4 Replies

7. Shell Programming and Scripting

search for a string without fixed delimiter in the line

Hi Need your help to assign the string to a variable from a line which has no fixed delimter in unix. for example , my file contains Name="report"" File Name one="test1" File Name two="test2" now how do I read report , test1 and test2 ? var1=report var2=test1 var3=test2 ... (1 Reply)
Discussion started by: rashmisb
1 Replies

8. UNIX for Advanced & Expert Users

Insert Delimiter at fixed locations in a flat file

Hi Can somebody help me with solution for this PLEASE? I have a flat file and need to insert delimiters at fixed positions in all the lines so that I can easily convert into EXCEL with columns defined as per their width. For Example Here is the file { kkjhdhal sdfewss sdtereetyw... (7 Replies)
Discussion started by: jd_mca
7 Replies

9. Shell Programming and Scripting

Appending string (charachters inside the line) to a fixed width file using awk or sed

Source File: abcdefghijklmnop01qrstuvwxyz abcdefghijklmnop02qrstuvwxyz abcdefghijklmnop03qrstuvwxyz abcdefghijklmnop04qrstuvwxyz abcdefghijklmnop05qrstuvwxyz Whatever characters are in 17-18 on each line of the file, it should be concatenated to the same line at the character number... (6 Replies)
Discussion started by: tamahomekarasu
6 Replies

10. Shell Programming and Scripting

adding delimiter to a fixed width file

Hi , I have a file : CSCH74000.00 CSCH74000.00 CSCH74100.00 CSCH74000.00 CSCH74100.00 CSCH74000.00 CSCH74000.00 CSCH74100.00 CSCH74100.00 CSCH74100.00 I have to put a delimiter( say comma) in between after 6th character: CSCH74,000.00 CSCH74,000.00 CSCH74,100.00 (2 Replies)
Discussion started by: sumeet
2 Replies
Login or Register to Ask a Question