gpt4 book ai didi

linux - 在 linux 中使用 sed 替换字符串后面的数字时得到一个额外的数字

转载 作者:太空狗 更新时间:2023-10-29 12:36:11 26 4
gpt4 key购买 nike

这对我来说是一个真正的 sed 问题。

我有一个原始输入文件如下。

R shthk     0.900000                                                            
R mue 0.054100
R nue 0.121400
R oue 0.137700
R ystress 150.23000

我有一个名为 Friction1.k 的文件,其单个值为 0.123200

我想在模拟期间将 mue 的值更改为该文件中给定的值。

我使用以下 sed 脚本。

sed '/\<mue\>/!d;=;s/.* \([^ ]\+\).*/\1/;R Friction1.k' dynaRcoupledmodel.k |
sed 'N;N;s|\n|s/|;s|\n|/|;s|$|/|;q' >temp.sed
sed -i -f temp.sed dynaRcoupledmodel.k

所以它变成了

R shthk     0.900000                                                            
R mue 0.123200148
R nue 0.121400
R oue 0.137700
R ystress 150.23000

该软件对其格式非常严格,所以当我使用此命令时,148 或 155 或 159 会额外出现,但我得到的错误是 *PARAMETER 已尝试更改固有时间。

早些时候它对我来说工作得很好,但现在却出现了错误。

我检查了 temp.sed,那个数字也在那里,但如何避免呢?

我不知道为什么这个数字是额外的,从哪里来的,但这对我来说是个问题。任何专家都可以帮助我吗?

最好的问候

最佳答案

这可能对你有用(GNU sed):

cat Friction1.k
0.123200
cat dynaRcoupledmodel.k
R shthk 0.900000
R mue 0.054100
R nue 0.121400
R oue 0.137700
R ystress 150.23000
sed '1{h;d};/\<mue\>/!b;G;s/\S*\(\s*\)\n\(.*\)/\2\1/' Friction1.k dynaRcouplemodel.k
R shthk 0.900000
R mue 0.123200
R nue 0.121400
R oue 0.137700
R ystress 150.23000

关于linux - 在 linux 中使用 sed 替换字符串后面的数字时得到一个额外的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915774/

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