gpt4 book ai didi

linux - awk 以尾随零打印 2 个以上的十进制值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:14 26 4
gpt4 key购买 nike

下面是我的输入文件,

input.txt

17.0
17.12
17.123
17.1234
17.120
17.1230
17.12340
17.00
17.000
17.0000

我想要输出如下

output.txt

17.120
17.1230
17.12340
17.000
17.0000

即我需要带有尾随零的超过 2 个小数点的值。我使用了下面的 awk 但输出文件也包含 17.00。如何忽略这个。

awk '/^[0-9]+[.][0-9][1-9]*0/' input.txt

awk 的输出

17.120
17.1230
17.12340
17.00
17.000
17.0000

最佳答案

我不太确定为什么要使用 awk 执行此操作,grep 就足够了。此外,如果您知道您的输入仅包含与点前面的任何内容匹配的有效数字,则完全没有必要。

$ grep '[.]...*0$' input.txt
17.120
17.1230
17.12340
17.000
17.0000

$ grep -P '[.][0-9]{2,}0$' input.txt
17.120
17.1230
17.12340
17.000
17.0000

要修复您的模式,只需再添加一个 [0-9] 类;匹配“至少两个”表示恰好匹配两个([0-9][0-9])加上零个或多个[0-9]*):

$ awk '/[.][0-9][0-9][0-9]*0$/' input.txt
17.120
17.1230
17.12340
17.000
17.0000

或使用+:

$ awk '/[.][0-9][0-9]+0$/' input.txt
17.120
17.1230
17.12340
17.000
17.0000

关于linux - awk 以尾随零打印 2 个以上的十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com