【问题标题】:add or subtract random values from a specific value in a certain column从特定列中的特定值添加或减去随机值
【发布时间】:2022-06-10 19:53:01
【问题描述】:

我喜欢在我的数据文件的特定列中添加或减去特定值的随机值。 那么,如果我的数据文件想要

(1 1 0)

(1 0 0)

(5 2 0)

(8 0.1 0)

(3 2 0.15)

(3 1 0.15)

(1 2 0.5)

(3 4 0.5)

(0.1 0.18 0.5)

我想将 0.01 到 0.02 范围内的随机值添加到第三列中的每个 0,然后从第三列中的每个 0.5 中减去相同范围内的随机值。然后最后我可以有类似的东西

(1 1 0.012)

(1 0 0.0163)

(5 2 0.01932)

(8 0.1 0.01654)

(3 2 0.15)

(3 1 0.15)

(1 2 0.485)

(3 4 0.4811)

(0.1 0.18 0.4867)

提前感谢您的建议。

【问题讨论】:

  • 欢迎使用 StackOverflow。请展示您到现在为止尝试过的内容并解释为什么它没有按预期工作。或者,您可以查看help center,尤其是asking section。

标签: bash ubuntu terminal


【解决方案1】:

我会先用tr从输入中去掉那些烦人的(),然后用awk修改值:

tr -d '()' < file.txt |
awk '
    BEGIN { srand() }
    {
        if ( $3 == 0 )   
            $3 = 0.01 + rand() * 0.01
        else if ( $3 == 0.5 )
            $3 -= 0.01 + rand() * 0.01
    }
    { print "(" $0 ")" }
'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2022-08-20
    • 2020-09-24
    • 1970-01-01
    • 2015-07-27
    相关资源
    最近更新 更多