Help deleting leading zeros in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help deleting leading zeros in a file
# 8  
Old 09-24-2013
Quote:
Originally Posted by rbatte1
Dear pamu,
How does your code react with the following input? :-
Code:
0001
0002 123
0003 Hello

I regret that I get syntax errors for lines 2 & 3.



Robin
As per the OP
Quote:
Originally Posted by kcpoole
Reason being as the section of the file is only a selection from a much larger line that is processed as part of a much larger string. The rest of the code pulls out the numbers and then I need to stip the leading zeros before putting them in an array.

I only included the extracted part to avoid confusion with the rest of the code.
He has already have code to separate the numbers here so, He just want to remove leading zeros.
# 9  
Old 09-24-2013
Quote:
Originally Posted by kcpoole
Quote:
Originally Posted by pamu
Code:
while read line 
    do
        wardevent=$(expr $line + 0)                     # remove leading Zero from the line
echo $wardevent
done<file

Awesome thank you very much that is exactly what I need to achieveSmilie
Quote:
Originally Posted by kcpoole
Is there a way to do it using string processing rather than calling awk?
In case you are interested in a much more efficient string processing approach which does not need to create an entirely new shell just to strip the zeroes, here's a modified version of pamu's suggestion:
Code:
while
    read line
do
    wardevent=${line#"${line%%[!0]*}"}
    echo $wardevent
done

That assumes (like pamu's suggestion) that the value of $line consists of nothing but digits. If that is not the case, then the read statement needs to be fortified and the echo statement should be abandoned in favor of printf and $wardevent double-quoted.

Regards,
Alister
# 10  
Old 09-24-2013
Code:
while read v junk
do
    wardevent=$((10#$v))
    echo $wardevent
done < file

This User Gave Thanks to MadeInGermany For This Post:
# 11  
Old 09-24-2013
Slight modification of pamu's code:
Code:
while read No REST; do   printf "%2d %s\n" "$No" "$REST"; done<file
 1 
 2 123
 3 Hello

Adapt printf's format string to your needs.
# 12  
Old 09-24-2013
Like the shell built-in numerics, printf "%d" treats a value with a leading 0 as an octal value, so 08 and 09 give error.
A workaround is printf "%.f".
These 3 Users Gave Thanks to MadeInGermany For This Post:
# 13  
Old 09-24-2013
... or give it the decimal prefix:
Code:
while read No REST; do   printf "%02d %s\n" $((10#$No)) "$REST"; done<file
01 
02 123
03 Hello
08 sklöfj
09 dfdsf

# 14  
Old 09-24-2013
printf is a poor approach. Post #3 states that the result of stripping the leading zeroes will be saved for further use. To save printf's output, it's necessary to use command substitution, which does not improve upon the already accepted solution, $(expr ...).

If the shell (or shells) which must run this code support the base# notation, I recommend MadeInGermany's arithmetic expansion approach, $((10#$v)). It's efficient and so simple that it's immediately understandable.

If the code must run on a shell which does not support base#, then my suggestion is probably the best choice.

Regards,
Alister
This User Gave Thanks to alister For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ho to remove leading zeros from a csv file which is sent from a UNIX script

Hi All, I am using a informatica job to create a csv file and a unix script the mail the generated file.Everything is working fine but I am not seeing leading zeros in the csv file sent in the mail.These zeros were present when the .csv file was generated by informatica procees. Is there any... (11 Replies)
Discussion started by: karthik adiga
11 Replies

2. Shell Programming and Scripting

Adding Leading Zeros for date in a file

Hello, I have a pipe separated file with two major lines. One is header and another is detail line. Header starts with H and Detail start with D. Sample Content: H|123456|Joes Watson|UK|4/5/2016|12/5/2016|3456|HC|NW|||||| D|123456|Joes... (13 Replies)
Discussion started by: Mannu2525
13 Replies

3. Shell Programming and Scripting

Fixed with file- removing leading zeros and adding the space

Hi All, i have a fixed width file , where each line is 3200 length. File: 1ABC 1111 2222 3333 000012341 1001 2ABC 1111 2222 3333 000012342 1002 3ABC 1111 2222 3333 000112343 1003 1DEF 5555 4444 9696 000012344 1004 2DEF 5555 2323 8686 000012345 1005 3DEF 5555 1212 7676 000012346 1006 ... (1 Reply)
Discussion started by: mechvijays
1 Replies

4. Shell Programming and Scripting

Numbers with leading zeros

Hi, i have a variable which conatins values like 00001,0003,00067,00459. I want to use the values one by one and in the same form as they are like 00001,0003,00067,00459. Also can anyone tell me how to increment those numbers by 1,keeping the format as same like 00002,0004,00068,00460.... (5 Replies)
Discussion started by: arijitsaha
5 Replies

5. UNIX for Dummies Questions & Answers

Add leading zeros to columns in a file

Hello Gurus, Quick question. I have a file with the following records: A~000000000000518000~SLP ~99991231~20090701~88.50~USD~CS~ A~000000000000518000~SLP ~99991231~20090701~102.00~USD~CS~ A~000000000000772000~SLP ~99991231~20100701~118.08~USD~CS~ I wold like to do the following: 1. Add... (1 Reply)
Discussion started by: chumsky
1 Replies

6. Shell Programming and Scripting

Help with adding leading zeros to a filename

Hi i need help in adding leading zero to filenames e.g file name in my folder are 1_234sd.txt 23_234sd.txt the output i need is 001_234sd.txt 023_234sd.txt can i do this shell scripting please help (2 Replies)
Discussion started by: rsmpk
2 Replies

7. Shell Programming and Scripting

Help needed in padding leading zeros

Hi all, I have file with numeric values. I need to pad each value with leading zeros such that total lenght of each value is 16. Example: cat tmp.txt 502455 50255 5026 5027 5028 Output 0000000000502455 0000000000050255 0000000000005026 0000000000005027 0000000000005028 Any... (12 Replies)
Discussion started by: jakSun8
12 Replies

8. Shell Programming and Scripting

truncating leading zeros of a column in a file

Hi I have a file in which I have 5 columns which are delimited by “|” as shown ABC|12|YAK|METRIC|000000019.5 XYZ|10|ABX|META|000000002.5 Now my requirement is to take the last column trim the leading zero's for that column values and write back to the same file in the same... (7 Replies)
Discussion started by: nvuradi
7 Replies

9. Shell Programming and Scripting

how to retain leading zeros

Hi All, I am working with a fixed width file Forrmat. C1 Number (10,3) C2 Number (10,3) e.g. c1= 0000000100.000 c2= 0000000020.000 0000000100.0000000000020.000 I have to perform c1 - c2 . i.e. I want answer to be 0000000080.000. but I am loosing the leading zeros( only getting... (3 Replies)
Discussion started by: Manish Jha
3 Replies

10. Shell Programming and Scripting

Leading zeros

How to insert leading zeros into a left-justisfied zip code? e.g. Zip code is written as 60320 which is left-justified to make it be read as 0060320. We have to move it to right-justifiable then insert 2 leading zeros into it... ;) (1 Reply)
Discussion started by: wtofu
1 Replies
Login or Register to Ask a Question