Remove trailing 0 from the field


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove trailing 0 from the field
# 1  
Old 09-18-2012
Question Remove trailing 0 from the field

Hi Freinds,

I have file1.txt as below

file1.txt

Code:
1521894~~-0.400~201207
1521794~~-0.486~201207
152494~~-0.490~201207
152154894~~-0.490~201207
1521894354~~-0.489~201207

expected output :
Code:
1521894~~-0.4~201207
1521794~~-0.486~201207
152494~~-0.49~201207
152154894~~-0.49~201207
1521894354~~-0.489~201207

Please help. I am very new to unix.

Last edited by Scott; 09-18-2012 at 08:54 AM.. Reason: Code tags
# 2  
Old 09-18-2012
Try:
Code:
awk -F"~" -vOFS="~" '{sub("0*$","",$3)}1' file

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 09-18-2012
With sed:
Code:
sed 's/0*\(~[0-9]*\)$/\1/' <file

--
Bye
This User Gave Thanks to Lem For This Post:
# 4  
Old 09-18-2012
@Lem ,@bartus11 thanks for reply. it worked good . but if i have a value 9.000 the output which i am getting is 9. but expcted is 9
# 5  
Old 09-18-2012
Building on @Lem's and @bartus11's solutions, try
Code:
awk -F"~" -vOFS="~" '{sub("[.0]*$","",$3)}1' file
or
sed 's/[\.0]*\(~[0-9]*\)$/\1/' <file

btw, Bartus11's suggestion will work if field4 contains e.g. letters while Lem's will fail on that.
This User Gave Thanks to RudiC For This Post:
# 6  
Old 09-18-2012
An awk solution:

Code:
 
awk -f b.awk infile

where b.awk:

Code:
 
{
 FS=l="~";
 for (i=1; i<=NF; i++) {
    if ($(i) ~ /[.]/) sub("[.0]*$", "", $(i));
    if (i==NF) l="\n";
    printf $i l;
 }
}

# 7  
Old 09-18-2012
Quote:
Originally Posted by i150371485
@Lem ,@bartus11 thanks for reply. it worked good . but if i have a value 9.000 the output which i am getting is 9. but expcted is 9
This should work better:
Code:
sed 's/\.*0*\(~[^~]*\)$/\1/' <file

--
Bye
This User Gave Thanks to Lem For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Remove trailing zeros from numbers

Hi, I am trying to remove trailing zeros from numbers in a csv file. CSV Input : 0.5000,abc,2.00,2.400,285.850,285a.850,205.180800,mno000,a0b0,2.860 Expected Output : .5,abc,2,2.4,285.85,285a.850,205.1808,mno000,a0b0,2.86 Can you please help. Thanks. (11 Replies)
Discussion started by: manubatham20
11 Replies

2. Shell Programming and Scripting

Remove trailing space in Gawk

Hi, I have simply made a shell script to convert *.csv to *.xml file. Xml file is required for input to one tool. But i am getting space after last field. How can i remove it. Shell script is as follows :- if then echo "" echo "Wrong syntax, Databse_update.sh... (6 Replies)
Discussion started by: stillrules
6 Replies

3. Shell Programming and Scripting

Remove trailing number

I have some strings such as ABC1 ABC2 TYFASDD12 They will only have letters and numbers. In each case I want to remove the last digit? The lengths will vary. So a hard coded substr won't work. What do I do? if it doesn't end in a number, I don't want to remove any characters. (6 Replies)
Discussion started by: guessingo
6 Replies

4. Shell Programming and Scripting

Remove trailing space

Hi I am trying to remove trailing space from a string. value=${value%% } It is not working. What might be the issue with the above snippet. (7 Replies)
Discussion started by: munna_dude
7 Replies

5. Shell Programming and Scripting

Remove trailing zeros

Hi I have a simple request but can't find the answer. I want to remove trailing zeros, and in some cases the fullstops, from the input data. Example of input file: FR002_15.000_20.000 SD475_5.000_10.500 FG5647_12.250_15.500 BH2463_30.555_32.000 Desired output file would be: ... (10 Replies)
Discussion started by: theflamingmoe
10 Replies

6. Shell Programming and Scripting

sed - how to remove trailing slashes

I know you can remove trialing slashes using: #echo "/tmp/one/two/three////" | sed "s,/$,," /tmp/one/two/three/// But I want to know how to make it remove all trialing flashes in the front, and in the start, so the end result is: tmp/one/two/three Anyone have any idea how to do this... (6 Replies)
Discussion started by: EXT3FSCK
6 Replies

7. Shell Programming and Scripting

how to remove trailing blanks, tabs

Hi I need to delete trailing spaces, tabs and unprintable charactes from the file. This file has a number of blank lines which should be left intact. Another words I am trying to remove the junk at the end of each line. Does anyone come across the similar problem? Thanks a lot for any help -A (3 Replies)
Discussion started by: aoussenko
3 Replies

8. Shell Programming and Scripting

Remove trailing G

Hello, I am trying to write a script that will calculate the amount of data remaining in a storage volume. I'm running Tru64 Unix version 5.1B patch kit 6. The script is being run against an AdvFS domain. I am programming in Korn Shell version M-11/16/88f. The basic idea is that I want to run df... (3 Replies)
Discussion started by: Heathe_Kyle
3 Replies

9. UNIX for Dummies Questions & Answers

How to remove trailing spaces

Hi, I have a file like this (ADD_MONTHS((Substr(Trim(BOTH FROM Translate(Maximum(closeDa ------------------------------------------------------------ 2007-06-30 00:00:00 I have a requirement where i need just the date. When i do: tail -1... (2 Replies)
Discussion started by: mahek_bedi
2 Replies

10. Shell Programming and Scripting

remove trailing newline characters

Hello , I have the folowing scenario : I have a text file as follows : (say name.txt) ABC DEF XYZ And I have one more xml file as follows : (say somexml.xml) <Name>ABC</Name> <Age>12</Age> <Class>D</Class> <Name>XYZ</Name> <Age>12</Age> <Class>D</Class> <Name>DEF</Name>... (7 Replies)
Discussion started by: shweta_d
7 Replies
Login or Register to Ask a Question