简体   繁体   English

在bash中使用sed根据指定的模式替换一行中的文本

[英]replace text in a line based on specified pattern using sed in bash

I have trouble to replace the text inside a line using sed. 我无法使用sed替换一行内的文本。 here is the example. 这是例子。

<con:startTransactionRequestElement>2a07a832-5b4e-44d2-8826-64d8678f6226</con:startTransactionRequestElement>

i want to only change the content between <con:startTransactionRequestElement> and </con:startTransactionRequestElement> for example, change the above content to below: 我只想更改<con:startTransactionRequestElement></con:startTransactionRequestElement>之间的内容,例如,将以上内容更改为以下内容:

<con:startTransactionRequestElement>abcdefegeawge</con:startTransactionRequestElement>

can someone tell me how to do that? 有人可以告诉我该怎么做吗?

Thanks. 谢谢。

With GNU sed: 使用GNU sed:

sed 's|\(<con:startTransactionRequestElement>\).*\(</con:startTransactionRequestElement>\)|\1abcdefegeawge\2|' file

If you want to edit your file "in place" use sed's option -i . 如果要“就地”编辑文件,请使用sed的选项-i

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM