Remove characters from fixed length file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove characters from fixed length file
# 1  
Old 05-08-2012
Remove characters from fixed length file

Hello

I've question on the requirement I am working on.

We are getting a fixed length file with "33" characters long. We are processing that file loading into DB.

Now some times we are getting a file with "35" characters long. In this case I have to remove two characters (in 22,23 positions) and process the file.

Here is the sample file. I need to remove "20" and process the remaining file.

Can you help achieving this task.I appreciate your help.

Code:
120000111LIFEWELC    20            $
120000222LIFEWELC    20            $
120000333LIFEWELC    20            $
120000444LIFEWELC    20            $



Thanks
Kind Regards
Vpadala

Last edited by Scrutinizer; 05-09-2012 at 03:00 AM.. Reason: code tags
# 2  
Old 05-08-2012
Hi manasvi24,

One way using perl:
Code:
$ perl -lpe 'if ( length == 35 ) { s/\A(.{21}).{2}/$1/ }' infile

# 3  
Old 05-08-2012
Thank you so much for the quick turn around. Is there any way can I achieve this using Unix Awk/Sed.

Once again thanks in advance for your help.
# 4  
Old 05-08-2012
Yes. Very similar using sed:
Code:
$ sed -e '/^.\{35\}$/ s/^\(.\{21\}\).\{2\}/\1/' infile

# 5  
Old 05-08-2012
This is working fine. Thank you so much for helping me. I tried to understand the command.
If you don't mind can you help me understand what are we doing here in detail.

Thanks in Advance
VPadala
# 6  
Old 05-08-2012
Yes.

^   Beginning of line
.   Any character...
\{35\}   ...repeated 35 times
$   End of line
s/match/replacement/   Substitute command
\(...\)   Group content matched
\1   Content of group 1.

So, first check if line has exactly 35 characters, and if so, match first 21 characters of the line, saving them in group 1, and next two characters (without saving), and replace all it with content of group 1, so that command will only remove characters 22 and 23.
# 7  
Old 05-08-2012
Thank you much Birei. This is so helpful. I really appreciate your help
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace and Increment a value in the fixed length file

Hi Everyone, I need to increment a value in the fixed length file. The file has almost a million rows. Is there any easy way to accomplish this. Ex input file ASDSD ADSD 00000 X AAASD ADSD 00000 X SDDDD ADSD 00000 X Ouput ASDSD ADSD 00001 X AAASD ADSD 00002 X SDDDD ADSD 00003 X ... (7 Replies)
Discussion started by: saratha14
7 Replies

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

3. Shell Programming and Scripting

Replace Date in a fixed length file

Hello All, I working on ksh. I am using fixed length file. My file is like: ======== IXTTIV110827 NANTH AM IKSHIT ABCDEF 0617 IJAY NAND EENIG ZXYWVU 0912 AP OOK OONG PQRSTU100923 NASA DISH TTY ASDFG 0223 GHU UMA LAM QWERT 0111 ATHE SH THEW ======= From 7th to 12 is a date... (4 Replies)
Discussion started by: AnanthaDikshit
4 Replies

4. Shell Programming and Scripting

Fixed length flat file extraction

Hii ,I am new to Unix ,i have a flat file which is (fixed length) sitting in unix,Which is holding the data for a table.I want to extract one column(length7-10) on the basis of another column(length13-15) and want only one single row Example: Below is the sample of flat file. 1111 AAAA 100 ... (4 Replies)
Discussion started by: laxmi1166
4 Replies

5. Shell Programming and Scripting

Search and replace particular characters in fixed length-file

Masters, I have fixed length input file like FHEAD0000000001XXXX20090901 0000009000Y1000XXX2 THEAD000000000220090901 ITM0000109393813 430143504352N22SP 000000000000RN000000010000EA P0000000000000014390020090901 TTAIL0000000003000000 FTAIL00000000040000000002 Note... (4 Replies)
Discussion started by: bittoo
4 Replies

6. Shell Programming and Scripting

remove strings of lowercase characters (with minimum length requirement)

Hi all, I want to delete all lowercase characters from my file, but only strings of length 7 and more. For example, how can I go from: JHGEFigeIGDUIirfyfiyhgfoiyfKJHGuioyrDHG To: JHGEFigeIGDUIKJHGuioyrDHG There should be a trick to add to sed 's///g', but I can't figure it out.... (2 Replies)
Discussion started by: elbuzzo
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

Manipulating a fixed length file w/o PERL

Greetings, I need to take a fixed length file, similar to the following: <input file> 1233 e 612 i 43378 f 03 x 22 17 e 9899 a 323e a6 z7 read in the character in position 6, and if that character = e, delete that line from the file. <output file> 43378 f 03 x 22 17 e 9899 ... (4 Replies)
Discussion started by: dabear
4 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