通过"sed"在匹配之前/之后添加一个字符串



>我有一堆带有字符串的文件,我想搜索特定的匹配项:">exampledata">

看起来像这样:

...(...name: Example; age: 21; version: 2131; exampledata: hello;) end

如果在一行中定义了"exampledata",则不执行任何操作,否则添加该字符串exampledata,并在版本号之后说一个数字(可以是1密码或最多5-6(,或者将其放在右括号">("之前,这始终是字符串中的模式。(即"示例数据"在版本之后和字符串的末尾。它后面只有一个">("。

sed '/exampledata:"/b; /version.....;/s/&"exampledata: 2"/'

这就是我到目前为止解决的问题,我不知道如何在版本交互式 BC 之后制作点。 在每一行中,可以有一个密码版本或更高的数字。 想法?

基本上,我正在寻找一个添加"示例数据:2;"的 sed 命令,例如,如果之前根本没有示例数据?(结果是这样的:嘭...(...版本: 98;示例数据:2;(

您的模式具有双引号,这些引号不会出现在数据中。

sed '/exampledata:/!s/version: [0-9]*;/& exampledata: 2;/'

/exampledata:/!使命令在不包含exampledata:的行上执行,然后执行更正确的替换。

最新更新