gpt4 book ai didi

unix - 如何在使用 sed/awk/tr 维护其值的 unix 环境中用另一个模式替换一个模式?

转载 作者:行者123 更新时间:2023-12-04 00:50:27 24 4
gpt4 key购买 nike

我在一个文件(.txt 文件)中设置了以下数据

数据 1 = 275736 490;数据 11 = 87551 1004;数据 2 = 344670 4875;数据 3 = 472996 840;数据 4 = 0 0;数据 = 19708 279;数据 6 = 10262 18;数据 7 = 0 0;数据 8 = 428 6;数据 9 = 5986 11;数据 10 = 15114 173;数据 11 = 7483 106;数据 = 15900 25;

我想将此 digit space digit 模式(例如 472996 840)替换为 digit,digit 模式(472996,840 )。必须对 0 0 以及 0,0 执行此操作。不应更改值。我无法替换所有空格,因为还需要其他空格。我必须将数字之间的空格替换为另一个字符串。

有什么使用 tr/sed/awk 的建议吗?

试过这个:

sed -i 's/\d+\s\d+/\d+\d+/g' comment3.txt 

此外,在 tr 中我们似乎无法匹配模式

最佳答案

一个简单的方法是捕获空格前的数字和空格后的数字,然后使用第一个和第二个反向引用 \1\在中间用逗号重新插入数字2。您可以使用 sed 's/find/replace/' 添加 g 的正常替换形式来进行全局替换(全部替换)。例如:

sed -E 's/([0-9])[ ]([0-9])/\1,\2/g' file

这将获取您的数据,例如

data1 = 275736 490;data11 = 87551 1004; data2 = 344670 4875; data3 = 472996 840;...

并将该行转换为:

data1 = 275736,490;data11 = 87551,1004; data2 = 344670,4875; data3 = 472996,840;...

当您满意它按您的意图进行时,您可以将 -i 添加到“就地编辑”。

关于unix - 如何在使用 sed/awk/tr 维护其值的 unix 环境中用另一个模式替换一个模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66881889/

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