小编Ish*_*han的帖子

GNU 模式匹配并替换准确数量的字符

这个问题可能已被列出,但我无法找到一个确切的命中。

我试图浏览一个文件,匹配一个模式并用其他东西替换它。但是,还有其他模式出现,但我只需要替换那些长度为 17 个字符的模式。

例子:

内容:

dlkfhfd|fedfe|dfwe3f347fde|3745978|dlkfhr**|376663781736102|**fedfe|dfwe3f347fde
Run Code Online (Sandbox Code Playgroud)

期待:

dlkfhfd|fedfe|dfwe3f347fde|3745978|dlkfhr**|37xxxxxxxxxxxxx|**fedfe|dfwe3f347fde
Run Code Online (Sandbox Code Playgroud)

进展:我能够将表达式与正则表达式模式匹配: **\|37[0-9]{13}\|**

但是,如果我将它放在 . 中sed,它只会替换文件中的所有内容。

sed -e s/\|37[0-9]{13}\|/\|37xxxxxxxxxxxxx\|/g
Run Code Online (Sandbox Code Playgroud)

我的 sed 版本是 4.2.2

linux sed gnu regular-expression wildcards

2
推荐指数
1
解决办法
3956
查看次数

标签 统计

gnu ×1

linux ×1

regular-expression ×1

sed ×1

wildcards ×1