gpt4 book ai didi

awk - 用另一个字符串替换字符串中的空格

转载 作者:行者123 更新时间:2023-12-01 22:51:27 25 4
gpt4 key购买 nike

我有一个包含如下值的文本文件:

<data>
<values=11.0200004578 -1.17999994755 -16.1200008392 />
<values=97.0999984741 -0.449999988079 2.16000008583 />
<values=41.7299995422 60.6699981689 43.75 />
</data>

我正在尝试这样获取它:

<data>
<values A="11.0200004578" B="-1.17999994755" C="-16.1200008392 />
<values A="97.0999984741" B="-0.449999988079" C="2.16000008583 />
<values A="41.7299995422" B="60.6699981689" C="43.75 />
</data>

第一部分,很简单,就是sed的替换

sed 's#<values=#<values A="#'

但我无法找到其他值的方法。

最佳答案

您可以使用从 ASCII 代码生成这些值的 awk 解决方案,而不是硬编码属性 A、B、C 等:

awk -F= '
$1 ~ /<values$/ && (n=split($2, a, /[[:blank:]]+/)) {
s = ""
ch = 0
for (i=1; i<n; ++i)
s = s sprintf("%c=\"%s\" ", 65+ch++, a[i])
$2 = s a[n]
} 1' file

<data>
<values A="11.0200004578" B="-1.17999994755" C="-16.1200008392" />
<values A="97.0999984741" B="-0.449999988079" C="2.16000008583" />
<values A="41.7299995422" B="60.6699981689" C="43.75" />
</data>

关于awk - 用另一个字符串替换字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74262731/

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