【问题标题】:My awk script don't print 0 and NR with 0我的 awk 脚本不打印 0 和 NR 为 0
【发布时间】:2021-04-28 12:09:26
【问题描述】:

这是我的脚本。如何强制我的脚本也打印为零。这对我来说非常重要。我不知道为什么它不打印零,我加了一个+0,所以它应该!

#!/bin/bash
awk 'a=$1/617 {print NR " " a+0}' sum.txt | tee autocor.txt

这是我的意见

1
0
0
1
0
0
0
0
1

这是我的输出

1 0.00162075
4 0.00162075
9 0.00162075

预期输出

1 0.00162075
2 0
3 0
4 0.00162075
5 0
6 0
7 0
8 0
9 0.00162075

【问题讨论】:

  • 看起来当a=$1/617 被用作条件并且$10 时,条件是a=0,其计算结果为0,这是错误的。 awk '{a=$1/617; print NR " " a+0}' 有效吗?
  • 是的,它有效!哦,我可能知道为什么它不起作用,我把它放在模式部分,谢谢!

标签: awk data-processing


【解决方案1】:

$1 == 0 时,您的a = $1 / 617 条件将不满足(因为在awk 中此值被认为是虚假的)。如果您想打印每个结果,请不要在规则中添加任何条件:

cat input | awk '{ print NR " " $1/617 }'

将打印

1 0.00162075
2 0
3 0
4 0.00162075
5 0
6 0
7 0
8 0
9 0.00162075

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 2016-05-21
    • 2021-03-04
    • 1970-01-01
    • 2013-03-16
    • 2017-12-11
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多