sed and awk for long lines


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers sed and awk for long lines
# 1  
Old 10-03-2014
sed and awk for long lines

Hi,

I'm trying make a variable length file to a fixed length of 4000.
I'm to pad spaces on the right of a record if length is less than 4000 to make the record length 4000.

I'm trying to use the below commands
Code:
awk '{printf "%-4000s\n", $0}' inputfile.dat > outputfile.dat
 
sed -e :a -e 's/^.\{1,4000\}$/& /;ta' inputfile.dat > outputfile.dat

But I'm getting error that :

Code:
awk: Format item %-4000s cannot be longer than 3,000 bytes.

And similar error for sed command.
Is there a workaround or alternate options to acheive this.

Thanks!

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data. Thanks
# 2  
Old 10-03-2014
Did you try the *nix command printf: $ printf "%-4000s", $grp seems to be working. And, be aware that fixed length records usually don't have a line feed at the EOL.
# 3  
Old 10-03-2014
You could also try the dd utility which has fancy options...
# 4  
Old 10-03-2014
Quote:
Originally Posted by RudiC
Did you try the *nix command printf: $ printf "%-4000s", $grp seems to be working. And, be aware that fixed length records usually don't have a line feed at the EOL.

Thank you for your reply.
What is $grp here?

---------- Post updated at 11:53 AM ---------- Previous update was at 11:50 AM ----------

Quote:
Originally Posted by vbe
You could also try the dd utility which has fancy options...
Thank you for replying.

I haven't used this before. Could you please help me out exactly how?
# 5  
Old 10-03-2014
grp is a variable that you want to print; can be anything...
# 6  
Old 10-03-2014
Quote:
Originally Posted by RudiC
grp is a variable that you want to print; can be anything...

Tried the below

awk {printf "%-4000s", $0} Temp_test1.dat

Got the error:

awk: Format item %-4000s cannot be longer than 3,000 bytes.
# 7  
Old 10-03-2014
Have you looked at the man pages of dd? What OS are you on? I used to do things like that on HP-UX years ago... specially when importing/exporting files to mainframes...
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Join lines using sed or awk

Hi, I have text file that looks like this: blabla bla PATTERN LINE1 LINE2 bla bla bla PATTERN LINE1 LINE2 bla PATTERN LINE1 LINE2 bla (9 Replies)
Discussion started by: hench
9 Replies

2. Shell Programming and Scripting

awk - sed :Help Getting next lines data .

Experts, Can you please help how to get the output that are written just below "bad" calls badcalls nullrecv 439486 54 0 badlen xdrcall dupchecks ... (6 Replies)
Discussion started by: rveri
6 Replies

3. Shell Programming and Scripting

Summing over specific lines and replacing the lines with the sum using sed, awk

Hi friends, This is sed & awk type question. I have a text file which has numbers spread all over the file. I want to sum the series of numbers whenever i find it and produce an output file with the sum. For example ###start of input text file #### abc def ghi 1 2 3 4 kjld random... (3 Replies)
Discussion started by: kaaliakahn
3 Replies

4. Shell Programming and Scripting

Sed/awk to delete single lines that aren't touching other lines

Hello, I'm trying to figure out how to use sed or awk to delete single lines in a file. By single, I mean lines that are not touching any other lines (just one line with white space above and below). Example: one two three four five six seven eight I want it to look like: (6 Replies)
Discussion started by: slimjbe
6 Replies

5. Shell Programming and Scripting

Long lines in test.awk

I have a awk script called test.awk which I run using awk -f test.awk file1.txt > file2.txt I am doing a long print statement and want to put it in separate lines Do I need a '/' at the end or not????? Should it be like this print... (12 Replies)
Discussion started by: kristinu
12 Replies

6. Shell Programming and Scripting

How to remove lines before and after with awk / sed ?

Hi guys, I need to remove the pattern (ID=180), one line before and four lines after. Thanks. (5 Replies)
Discussion started by: ashimada
5 Replies

7. Shell Programming and Scripting

Add lines with sed or awk

I want to get an output from the input as below: Input: ASDDS14 RXOTX-39-8 AB0991C TRY1900 AEDFS12 RXOTX-39-9 TK0991C TRY800 HSVDS11 RXOTX-389-10 LG0991C TRY1900 BSDDS09 RXOTX-394-0 AA0066A TRY800 OUTPUT: ASDDS14 RXOTS-39-8-0 AB0991C TRY1900... (2 Replies)
Discussion started by: aydj
2 Replies

8. Shell Programming and Scripting

Replacing or removing a long list of pattern by using awk or sed

Input: >abc|123456|def|EXIT| >abc|203456|def|EXIT2| >abc|234056|def|EXIT3| >abc|340056|def|EXIT4| >abc|456000|def|EXIT5| . . . Output: def|EXIT| def|EXIT2| def|EXIT3| def|EXIT4| def|EXIT5| . . My try code: (9 Replies)
Discussion started by: patrick87
9 Replies

9. Shell Programming and Scripting

Manipulate lines with sed/awk

Hey All, I need to reorganize a file's text. Here is the source: host John_Doe filename "config.cfg"; hardware ethernet 98:10:3d:13:8f:98; fixed-address 10.10.10.29; } host Jane_Doe filename "config.cfg"; hardware ethernet 98:13:11:fd:5a:57; fixed-address 10.10.5.24; } host... (2 Replies)
Discussion started by: TheBigAmbulance
2 Replies

10. Shell Programming and Scripting

line too long using awk or sed or tr

Goodmorning, I have MKS Toolkit (K-Shell) running on a windows server. On it I have a c program that in a true unix environment works fine, but here it adds an extra '0000000000000016000A' in various places in the file that the c program produces that I need to remove. Here is what the file... (3 Replies)
Discussion started by: philplasma
3 Replies
Login or Register to Ask a Question