Removing trailing zeroes


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing trailing zeroes
# 1  
Old 02-25-2010
Code:
$ echo 1200,135.000000,12.30100,3212.3200,1.759403,1230,101.101010,100.000000 | awk -F"," -v OFS="," ' { for(i=0;NF-i++;){sub("[.]*0+ *$","",$i)};$1=$1 }1 '
12,135,12.301,3212.32,1.759403,123,101.10101,100



---------- Post updated at 10:51 PM ---------- Previous update was at 10:45 PM ----------

My sed and datpal's awk solution fail in this case

Code:
$ echo 1200.00200300 | sed "s/\.0\{1,\}//g"
1200200300
$ echo 1200.00200300 | awk '{ if ($0 ~ /\./){ sub("0*$","",$0); sub ("\.$","",$0);} print}'
1200.00200

Code:
$ echo 1200.00200300 | awk -F"," -v OFS="," ' { for(i=0;NF- i++;){sub("[.]*0+ *$","",$i)};$1=$1 }1 '
1200.002003

# 2  
Old 02-26-2010
Quote:
Originally Posted by anbu23
[CODE]$
---------- Post updated at 10:51 PM ---------- Previous update was at 10:45 PM ----------

[/COLOR]My sed and datpal's awk solution fail in this case

Code:
$ echo 1200.00200300 | sed "s/\.0\{1,\}//g"
1200200300
$ echo 1200.00200300 | awk '{ if ($0 ~ /\./){ sub("0*$","",$0); sub ("\.$","",$0);} print}'
1200.00200

Code:
$ echo 1200.00200300 | awk -F"," -v OFS="," ' { for(i=0;NF- i++;){sub("[.]*0+ *$","",$i)};$1=$1 }1 '
1200.002003


It works fine for me anbu23
Code:
 echo 1200.00200300 | awk '{ if ($0 ~ /\./){ sub("0*$","",$0); sub ("\.$","",$0);} print}'
1200.002003

In fact what u gave will break for whole numbers
Code:
 echo 100 | awk -F"," -v OFS="," ' { for(i=0;NF- i++;){sub("[.]*0+ *$","",$i)};$1=$1 }1 '
1

# 3  
Old 02-26-2010
Quote:
Originally Posted by daptal
It works fine for me anbu23
Code:
 echo 1200.00200300 | awk '{ if ($0 ~ /\./){ sub("0*$","",$0); sub ("\.$","",$0);} print}'
1200.002003

In fact what u gave will break for whole numbers
Code:
 echo 100 | awk -F"," -v OFS="," ' { for(i=0;NF- i++;){sub("[.]*0+ *$","",$i)};$1=$1 }1 '
1

I added a slash and it worked for me
Code:
$ echo 1200.00200300 | awk '{ if ($0 ~ /\./){ sub("0*$","",$0); sub ("\\.$","",$0);} print}'
1200.002003

You are right. My code will break for whole numbers. Here is the fixed code

Code:
echo 1200,135.000000,12.30100,3212.3200,1.759403,1230,101.101010,100.000000 | awk -F"," -v OFS="," ' { for(i=0;NF-i++;){ if($i ~ /[.]/){ sub("[.]*0+ *$","",$i) }}$1=$1}1'
1200,135,12.301,3212.32,1.759403,1230,101.10101,100

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing Trailing Line

I have been trying to remove empty lines and lines just filled with spaces. I have used the following command which does work. sed -i "/^\s*$/d" Except it leaves one single trailing line at the very end of the file. For the life of me I cant figure out why I cant remove that last trailing... (2 Replies)
Discussion started by: user8282892
2 Replies

2. UNIX for Dummies Questions & Answers

Removing trailing x'0A' characters.

I am trying to remove trailing carriage return (x'0a') from a source program. What is a good way to do this for the whole file? TIA (4 Replies)
Discussion started by: wbport
4 Replies

3. UNIX for Dummies Questions & Answers

Removing trailing characters

I have been given a shell script that I need to amend. To do the following extract the filename from the flag file by removing the .flag extension. # Local variables # Find if the flag files exists MASK=coda_mil2*.flag # Are there any files? bookmark="40" fileFound=0 ls -1... (3 Replies)
Discussion started by: andymay
3 Replies

4. Shell Programming and Scripting

Removing just the trailing commas :-(

Hi all, I haven't needed to do any shell based editing for nearly 20 years, and no amount of searching around has found me a solution to this very simple problem :-( I have a csv file. Some lines have three commas at the end. This means the invoice hasn't been paid. I'd like to use sed / grep... (4 Replies)
Discussion started by: chardyzulu
4 Replies

5. UNIX for Dummies Questions & Answers

Removing the trailing date from a filename

Hi I have 3 files (say) in a folder as in the example below abc_01012011.csv def_01012011.csv xyz_01012011.csv I need to move these files to a different folder as follows abc.csv def.csv xyz.csv I am trying to put together a script with a for loop which reads the source filenames... (5 Replies)
Discussion started by: bobsn
5 Replies

6. Shell Programming and Scripting

Removing trailing zeros using sed

Hello All, I have a csv file with 3 columns. The file which looks like this 47850000,100,233 23560000,10000,456 78650000,560000,54 34000000,3456,3 The first column has 4 trailing zeros. I have to remove 4 trailing zeroes from 1st field. The output file should appear as follows. ... (12 Replies)
Discussion started by: grajp002
12 Replies

7. Shell Programming and Scripting

sed not removing leading zeroes

I have th following file 0000000011 0000000001 0000000231 0000000001 0000000022 noow when i run the following command sed 's/^0+//g' file name I receive the same output and the leading zeroes are not removed from the file . Please let me know how to achieve... (4 Replies)
Discussion started by: asalman.qazi
4 Replies

8. Shell Programming and Scripting

Removing leading and trailing spaces only in PERL

Hi All, I have a file with the following contents with multiple lines 172445957| 000005911|8| 400 Peninsula Ave.#1551 | And,K |935172445957|000005911 607573888 |000098536 | 2|Ane, B |J |Ane |1868 |19861206|20090106|20071001 I want to trim the "leading and trailing spaces only" from... (2 Replies)
Discussion started by: kumar04
2 Replies

9. Shell Programming and Scripting

sed: removing any and all trailing digits?

We have a large number of oracle database related scripts that utilize the environment variables $ORACLE_SID and $DBNAME. In a single instance database the $ORACLE_SID is the same as the database name $DBNAME. So we have simply set DBNAME = $ORACLE_SID. However, now that we are clustering with RAC,... (5 Replies)
Discussion started by: Squeakygoose
5 Replies

10. Shell Programming and Scripting

re: removing trailing space from lines

Not sure why this thread was closed without any explanation, but you can do what you're asking with sed 's/]*$//g' < sourceFile > destFile (1 Reply)
Discussion started by: oombera
1 Replies
Login or Register to Ask a Question