Read variables from line to fixed length


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read variables from line to fixed length
# 1  
Old 01-23-2008
Read variables from line to fixed length

I would like to make a script to read three variables (no fixed length or position) from a line and write them into a file, with fixed length and right-justified in each column. The fixed text (text1-text4) prior to the thee variables and the variables themselves are originally separated by spaces only.

The input lines (LINE1) can look like this:

text1 text2 text3 text4 99960.7 10.1 21.3
text1 text2 text3 text4 100126.7 5.4 4.5
text1 text2 text3 text4 100214.5 4.8 350.5

This is my script sofar:

set var1 = `echo $LINE1 | awk '{print $5}'`
echo $var1,$var2,$var3 >> data.out

Can anyone help me to fill the columns to a fixed length (10 bytes) and the right justification?

Thanks in advance.
# 2  
Old 01-23-2008
Do you mean something like this?

Code:
% while read a b c d e j;do printf "%10s\n" "$e";done<file 
   99960.7
  100126.7
  100214.5

Or:

Code:
% awk '{printf "%10s\n",$5}' file
   99960.7
  100126.7
  100214.5

Oops, just saw the ORS:

Code:
% paste -sd, <( printf "%10s\n" $(cut -d" " -f5 file))
   99960.7,  100126.7,  100214.5

# 3  
Old 01-23-2008
I would like to have three columns of fixed width (10) with the values of the three variables justified at the right. The text can be skipped:

timestamp var1 var2 var3
timestamp var1 var2 var3
timestamp var1 var2 var3
# 4  
Old 01-23-2008
?

I'll give you both (right and left):
Code:
% cat file
text1 text2 text3 text4 99960.7 10.1 21.3
text1 text2 text3 text4 100126.7 5.4 4.5
text1 text2 text3 text4 100214.5 4.8 350.5
% awk '{printf "%10s %10s %10s %10s\n", ts, $5,$6,$7}' ts="$(date +%F)" file
2008-01-23    99960.7       10.1       21.3
2008-01-23   100126.7        5.4        4.5
2008-01-23   100214.5        4.8      350.5
% awk '{printf "%-10s %-10s %-10s %-10s\n", ts, $5,$6,$7}' ts="$(date +%F)" file
2008-01-23 99960.7    10.1       21.3      
2008-01-23 100126.7   5.4        4.5       
2008-01-23 100214.5   4.8        350.5

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies

2. UNIX for Beginners Questions & Answers

Read line and save fields as variables

Hej guys, I am trying to read a csv file line by line, save it's fields as variables per line so I can use them as parameters and execute stuff. I am new to shell scripting and was just strictly following a tutorial. Somehow my version seems to ignore the loop. Any help? TY! :) #!/bin/bash... (12 Replies)
Discussion started by: Splinter479
12 Replies

3. Shell Programming and Scripting

read line by line and calculate the co-presence of variables

Hey guyz, I have a table which shows the presence or absence of my variables (A,B,C,...) in my observations (1,2,3,...) * A B C ... 1 1 0 1 2 1 1 0 3 1 0 0 ... I want to calculate the co-presence of my variables. to have a table shows the pairwise presence of the variables (have... (1 Reply)
Discussion started by: @man
1 Replies

4. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

5. Shell Programming and Scripting

Make variable length record a fixed length

Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types: (H)eader Records (D)etail Records (T)railer Records The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies

6. Shell Programming and Scripting

how to read fixed length flat file....

Hi Gurus, Thanks in advance... I am new to writing shell scripting and help me out reading a flat file with fixed length. I have a fixed length flat file with storename(lenth 6) , emailaddress(lenth 15), location(10). There is NO delimiters in that file. Like the following str00001.txt... (2 Replies)
Discussion started by: willywilly
2 Replies

7. UNIX for Dummies Questions & Answers

Convert a tab delimited/variable length file to fixed length file

Hi, all. I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file: 10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783 19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657 And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies

8. UNIX for Dummies Questions & Answers

What the command to find out the record length of a fixed length file?

I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies

9. Shell Programming and Scripting

How to read a line and put it into 3 variables

Hi All, I'll get a file whose 2nd line contains 3 fields: filename(variable length), file size char(10), and record count int(10). How do I cut it and put it into 3 variables? eg: abcd.csv01234567891111111111 now I want: $one = abcd.csv, $two = 0123456789, $three = 1111111111. I also... (8 Replies)
Discussion started by: Mandab
8 Replies

10. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies
Login or Register to Ask a Question