我想在linux中替换文件中的文本
这种行会出现多次,而且格式也不同
例子:
12345 = 你自己:1376*5435
96235 = 你自己:6723*8112
这类文本会在文件中出现多次,唯一常见的是“你自己”,即中间文本
我需要用下面的文字替换它
“### = 你自己:###”
请帮我立即完成这项任务
最佳答案
如果位数正是您在示例中提供的,您可以使用 sed
命令(将 filename
视为文件名):
sed -E 's/[0-9]{5}\ =\ yourself\ :\ [0-9]{4}\*[0-9]{4}/### = yourself : ###/' filename
如果位数会有所不同,只需将其更改为:sed -E 's/[0-9].+\ =\ yourself\ :\ [0-9].+\*[0-9].+/### = yourself : ###/' filename
我使用以下输入来测试它:12345 = yourself : 1376*5435
54353 = yourself : 3245*3221
96235 = yourself : 6723*8112
Ps: sed 命令内不需要转义空格。我的错。此外,如果您想就地更改它,请传递标志 -i
.
关于linux - 我想一次替换文件中多次出现的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69928566/