Help with Fixed width File Parsing


 
Thread Tools Search this Thread
Special Forums UNIX Desktop Questions & Answers Help with Fixed width File Parsing
# 1  
Old 04-29-2008
Help with Fixed width File Parsing

I am trying to parse a Fixed width file with data as below. I am trying to assign column values from each record to variables. When I parse the data, the spaces in all coumns are dropped. I would like to retain the spaces as part of the dat stored in the variables. Any help is appreciated.

I would like to redirect this data into a csv file like below for each record
2,6138023380020080422120104828,60061395297943,0000006824, ,C, , ,POS .......etc

Input File

26138023380020080422120104828600613952979430000006824C POS13MMAHONIA NANCY 4189928286000422120104CO OP 2529 HOLIDAY FLCO-OP #2529

My Script:

while read LINE
do
a=`echo "$(echo $LINE |cut -c1-1)"`
b=`echo "$(echo $LINE |cut -c2-32)"`
c=`echo "$(echo $LINE |cut -c33-43)"`
d=`echo "$(echo $LINE |cut -c44-53)"`
e=`echo "$(echo $LINE |cut -c54-55)"`
f=`echo "$(echo $LINE |cut -c55-74)"`
#echo $a,$b,$c,$d,$e,"$f >> Int_4_final.dat
done < $1
# 2  
Old 05-19-2008
Hi,
I would put a space after each )

Quote:
Originally Posted by sate911

a=`echo "$(echo $LINE |cut -c1-1)"`
# 3  
Old 05-19-2008
You need to use proper quoting to preserve spaces in variables. See UNIX Shell Quote
(via Answers to Frequently Asked Questions - The UNIX Forums)
# 4  
Old 05-19-2008
Hammer & Screwdriver Double-quote the variable

Here are a couple of examples from one of my working scripts.

Code:
   year=$(echo "$zf" | cut -c185-188)
   car=$(echo "$zf" | cut -c189-230)



The key is the variable zf is in double-quotes, and thus maintains all spacing.
# 5  
Old 05-19-2008
If the result contains spaces, you will need to quote the backticks, too.

Code:
year="$(echo "$zf" | cut -c185-188)"
car="$(echo "$zf" | cut -c189-230)"

echo `echo` as seen above is obviously a redundant, Useless Use of Echo in Backticks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace using awk on fixed width file.

All, I used to use following command to replace specific location in a fixed width file. Recently looks like my command stopped working as intended. We are on AIX unix. awk 'function repl(s,f,t,v) { return substr(s,1,f-1) sprintf("%-*s", t-f+1, v) substr(s,t+1) } NR<=10 {... (3 Replies)
Discussion started by: pinnacle
3 Replies

2. Shell Programming and Scripting

Fixed Width file creation from csv

Hello All, I'm able to achieve my goal of creating a fixed width file from a comma delimited but I know I'm not doing it as efficiently as possible. Original File checksab 004429876883,O,342040,981.98,10232014 004429876883,O,322389,2615.00,10232014... (6 Replies)
Discussion started by: aahlrich
6 Replies

3. Shell Programming and Scripting

Alter Fixed Width File

Thank u so much .Its working fine as expected. ---------- Post updated at 03:41 PM ---------- Previous update was at 01:46 PM ---------- I need one more help. I have another file(fixed length) that will get negative value (ex:-00000000003000) in postion (98 - 112) then i have to... (6 Replies)
Discussion started by: vinus
6 Replies

4. UNIX for Dummies Questions & Answers

Length of a fixed width file

I have a fixed width file of length 53. when is try to get the lengh of the record of that file i get 2 different answers. awk '{print length;exit}' <File_name> The above code gives me length 50. wc -L <File_name> The above code gives me length 53. Please clarify on... (2 Replies)
Discussion started by: Amrutha24
2 Replies

5. Shell Programming and Scripting

Comparing two fixed width file

Hi Guys I am checking the treads to get the answer but i am not able to get the answer for my question. I have two files. First file is a pattern file and the second file is the file i want to search in it. Output will be the lines from file2. File1: P2797f12af 44751228... (10 Replies)
Discussion started by: anshul_er
10 Replies

6. Shell Programming and Scripting

Manupulating Records in a fixed width file

I am trying to determine what would be a fast and simple way to manipulate data that comes in a fixed width format. This data has 6 segments within a record. Each record needs to written out with a header and the 6 segments. Based on the value in column #6 the fields will be defined accordingly.... (4 Replies)
Discussion started by: Muga801
4 Replies

7. Shell Programming and Scripting

Fixed-Width file from Oracle

Hi All, I have created a script which generates FIXED-WIDTH file by executing Oracle query. SELECT RPAD(NVL(col1,CHR(9)),20)||NVL(col2,CHR(9))||NVL(col3,CHR(9) FROM XYZ It generates the data file with proper alignment. But if same file i transfer to windows server or Mainframe... (5 Replies)
Discussion started by: Amit.Sagpariya
5 Replies

8. Shell Programming and Scripting

summing up the fields in fixed width file

Hi, I have a fixed width file with some records as given below: " 1000Nalsdjflj243324jljlj" "-0300Njfowjljl309933fsf" " 0010Njsfsjklj342344fsl" I want to sum-up first field values(i.e from 2nd character to 6th character)of each record. so for the above file i want to add (1000 - 300+... (2 Replies)
Discussion started by: srilaxmi
2 Replies

9. Shell Programming and Scripting

Changing particular field in fixed width file

I have a fixed width file and i need to change 36th field to "G" in for about random 20 records? How can I do it? (4 Replies)
Discussion started by: dsravan
4 Replies

10. UNIX for Dummies Questions & Answers

Fixed Width file using AWK

I am using the following command at the Unix prompt to make my 'infile' into a fixed width file of 100 characters. awk '{printf "%-100s\n",$0}' infile > outfile However, there are some records with a special character "©" These records are using 3 characters in place of one and my record... (2 Replies)
Discussion started by: alok.benjwal
2 Replies
Login or Register to Ask a Question