首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sed替换字符串中用于不同模式的多个模式

如何使用sed替换字符串中用于不同模式的多个模式
EN

Ask Ubuntu用户
提问于 2019-02-14 02:35:43
回答 1查看 2.8K关注 0票数 0

我想将一行中的多个数字替换为不同的值。例如,在字符串"uncertainty = { 0.01 , 0.01 }"中,它应该替代string "uncertainty = { 0.2 , 0.2 }"

问题是,这些行出现在数百个文件中,括号内有不同数量的数字。

它可以是:

代码语言:javascript
复制
"uncertainty = {  0.1 , 0.1, 0.1 }"

代码语言:javascript
复制
"uncertainty = {  0.3 , 0.3, 0.3 }"

代码语言:javascript
复制
"uncertainty = {  0.1 , 0.1, 0.1 , 0.1, 0.1, 0.1}"

代码语言:javascript
复制
"uncertainty = {  0.3 , 0.3, 0.3 , 0.3, 0.3, 0.3}

依此类推,我必须把它们全部替换掉。

我看不出sed是怎么被用来做这个的。

EN

回答 1

Ask Ubuntu用户

发布于 2019-02-14 03:20:06

使用正则表达式。将花括号中的一个项转换为正则表达式,如:

[0-9]\.[0-9]1

这个短语的意思是“一个数字,一个句号,一个数字,一个1”。如果格式是一致的贯穿,这将只取代"0.01“的实例时,通过sed。

还有其他工具也可以满足这些需求,比如awktr,但是您仍然会对它们使用正则表达式。要大量替换这样的数字,可以用另一个[0-9][1-3]替换该"1“,以指定1-3范围内的数字。

有关正则表达式的更多信息,请参见里克谢。它们极大地扩展了几乎所有文本操作实用程序的用途。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1118091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档