how to append spaces(say 10 spaces) at the end of each line based on the length of th


 
Thread Tools Search this Thread
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
# 15  
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...
# 16  
Old 01-28-2009
The use of cat with awk and in a while loop is redundant.

Code:
awk '
}
  ...
}
' file_in

Code:
while read line; do
 ..
done < file_in

Regards
# 17  
Old 01-28-2009
Quote:
Originally Posted by Franklin52
The use of cat with awk and in a while loop is redundant.
True.

However, I find that seeing the name of the file at the beginning
of a pipe-line, in general, is convenient for legibility and comprehension.
That is, no searching to the end of a lenghthy pipe or awk script to see what the input file is.
# 18  
Old 01-28-2009
Quote:
Originally Posted by quirkasaurus
True.

However, I find that seeing the name of the file at the beginning
of a pipe-line, in general, is convenient for legibility and comprehension.
That is, no searching to the end of a lenghthy pipe or awk script to see what the input file is.
Right, but it's not a bad habit to make known how to avoid cat to make the code more efficient (and faster).

Regards
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
Login or Register to Ask a Question