Sponsored Content
Top Forums UNIX for Dummies Questions & Answers how to append spaces(say 10 spaces) at the end of each line based on the length of th Post 302281181 by quirkasaurus on Wednesday 28th of January 2009 10:20:15 AM
Old 01-28-2009
Quote:
Originally Posted by govindraj
thanks for reply.....

I am new to unix....
I require to append 100 spaces(fillers) to header(first line) and 100 space to trailer(last line).
the data in the middle not to be changed.

i do not want variable length record file turned into a fixed width record file. i just need to append 100 fillers in the first line and 100 fillers in last line

sample file:

HODA(need to add 100 fillers(spaces) here)
D0000000000000000000000000000000000
D0000000000000000000000000000000000
T000012(need to add 100 fillers(spaces) here)
Well, just some questions then:

Why would you need to make the header and trailer ONLY 106 characters in length?

Usually, this is because an old mainframe type program is reading the file with a fixed record size. For fun, just check the size of your "D" records and see if they aren't 106 characters wide.

At any rate, here's a ksh solution:

Code:
cat file_in |
while read line; do
  case $line in
    [HT]*) printf "%s%-100.100s\n" $line " " ;;
        *) print $line ;;
  esac
done

Here's an awk solution:

Code:
 
cat file_in |
awk '
  /^H/ { printf( "%s%-100.100s\n", $0, " " ); next; }
  /^T/ { printf( "%s%-100.100s\n", $0, " " ); next; }
  { print; }
  '

Notice the use of the printf() in both solutions.

I also like this syntax for printf:

Code:
printf( "%-*.*s\n", 106, 106, string );

... where you can pass the width in as an argument to printf.
It's a smidge easier to modify later on...
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Deleting end line spaces for along file

How can i clear all space characteres for a long file at the end of each line? (3 Replies)
Discussion started by: osymad
3 Replies

2. Shell Programming and Scripting

To Trim spaces at the end of line

Hi Friends, Can any one help with this issue: How to trim spaces for each line at the end, Like I have a file in this format. EMP1 SMITH 46373 5 STREET HOWARD 74636 EMP2 JONES 5454 { these are spaces ........} EMP3 SMITH 46373 5 STREET HOWARD 74636 EMP4 JON 2554 { these are... (1 Reply)
Discussion started by: sbasetty
1 Replies

3. Shell Programming and Scripting

Append Spaces At end of each line Leaving Header and Footer

How to append constant No of spaces suppose 52 at end of each line in a file (xyz) excluding first and last line. Please Help me out for the same. (1 Reply)
Discussion started by: deepam
1 Replies

4. Shell Programming and Scripting

append string with spaces to a line

hi i have a file like (every string contains 16 chars) CTL1330000000000 0000 00 008000 0080000000 i need to form a line and write to a file CTL13300000000000000 00008000 0080000000 total chars should be 64 ... (2 Replies)
Discussion started by: Satyak
2 Replies

5. Shell Programming and Scripting

append end of line with 8 spaces

child_amt=$amount prev_line="$prev_line $child_amt" i am getting the result like this 21234567890001343 000001004OLFXXX029100020091112 0000060 but i want 8 spaces between the eg: 21234567890001343 000001004OLFXXX029100020091112 0000060 how can i do this in .ksh (1 Reply)
Discussion started by: kshuser
1 Replies

6. UNIX for Dummies Questions & Answers

I don't want to truncate trailing spaces and ^M at the end of line

I have a script wherein I access each line of the file using a FOR loop and then perform some operations in each line. The problem is each line that gets extracted in FOR loop truncates trailing blank spaces and control characters (^M) that is present at the end of each line. I don't wan this to... (5 Replies)
Discussion started by: Shobana_s
5 Replies

7. Shell Programming and Scripting

append blank spaces at the end of a variable string

Hello, could you please help with this one. I have an input file like this: 123,4567,89000 123456789,9876543,12 and for the output I need strings to be with the fixed length, let's say 15, and if the string is -lt 15 to be populated with blanks at the end until it reach 15, like this: 123 ,4567... (1 Reply)
Discussion started by: apenkov
1 Replies

8. Shell Programming and Scripting

Append spaces the rows to make it into a required fixed length file

I want to make a script to read row by row and find its length. If the length is less than my required length then i hav to append spaces to that paritucular row. Each row contains special characters, spaces, etc. For example my file contains , 12345 abcdef 234 abcde 89012 abcdefgh ... (10 Replies)
Discussion started by: Amrutha24
10 Replies

9. UNIX Desktop Questions & Answers

To remove the extra spaces at the end of each line in a file

I have a file of about 10k records and eace line is having an extra space of 5 byte at the end.. Iwant to remove the extra spaces at the end of each line.. Can someone please help me out.. I tried using sed command and its not working... can someone please help me out. (3 Replies)
Discussion started by: rammohan
3 Replies

10. Shell Programming and Scripting

Removing tab spaces at the end of each line

I have a file which contains the data lines like below.I want to remove the tab spaces at the end of each line.I have tried with the command sed 's/\+$//' file.but it does not work.Can anyone help me on this? 15022 15022 15022 15022 15022 15022 15023 15023 15023 15023 15023 ... (16 Replies)
Discussion started by: am24
16 Replies
FMTCHECK(3)						   BSD Library Functions Manual 					       FMTCHECK(3)

NAME
fmtcheck -- sanitizes user-supplied printf(3)-style format string LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <stdio.h> const char * fmtcheck(const char *fmt_suspect, const char *fmt_default); DESCRIPTION
The fmtcheck function scans fmt_suspect and fmt_default to determine if fmt_suspect will consume the same argument types as fmt_default and to ensure that fmt_suspect is a valid format string. The printf(3) family of functions can not verify the types of arguments that they are passed at run-time. In some cases, like catgets(3), it is useful or necessary to use a user-supplied format string with no guarantee that the format string matches the specified parameters. The fmtcheck function was designed to be used in these cases, as in: printf(fmtcheck(user_format, standard_format), arg1, arg2); In the check, field widths, fillers, precisions, etc. are ignored (unless the field width or precision is an asterisk '*' instead of a digit string). Also, any text other than the format specifiers is completely ignored. Note that the formats may be quite different as long as they accept the same parameters. For example, "%p %o %30s %#llx %-10.*e %n" is com- patible with "This number %lu %d%% and string %s has %qd numbers and %.*g floats (%n)." However, "%o" is not equivalent to "%lx" because the first requires an integer and the second requires a long. RETURN VALUES
If fmt_suspect is a valid format and consumes the same argument types as fmt_default, then the fmtcheck function will return fmt_suspect. Otherwise, it will return fmt_default. SEE ALSO
printf(3) BSD
October 17, 2000 BSD
All times are GMT -4. The time now is 07:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy