Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have the following values in my file:

1.5000
0.006
9.0001
104.2500
17.0000
3.5000
paper

I want to remove the trailing zero, the following awk will remove the trailing zeros but print zeros for character value:

awk '{a=$0+0;if (a!~/./) a=a".0";print a}' file

Output of above awk:

1.5
0.006
9.0001
104.25
17
3.5
0.0

How to modify the awk to skip the characters?

Excepted output:

1.5
0.006
9.0001
104.25
17.0
3.5
paper
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
150 views
Welcome To Ask or Share your Answers For Others

1 Answer

Using sed:

sed 's/,([0-9]*[.]0?)((0*[1-9]+)*)0*/,12/' input

This gives:

1.5
0.006
9.0001
104.25
17.0
3.5
paper

For a multi-column file:

awk '$2~/^[0-9]+[.][0-9][1-9]*0+$/{
     $2=gensub(/([.]0?([0-9]*[1-9]+)?)0*$/, "\1", "g", $2)}1' input

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...