gpt4 book ai didi

regex - 使用 sed 替换等长文本

转载 作者:IT王子 更新时间:2023-10-29 00:38:32 26 4
gpt4 key购买 nike

有没有一种方法可以使用 sed 将模式替换为等长的其他内容(例如点、零等)?像这样:

maci:/ san$ echo "She sells sea shells by the sea shore" | sed 's/\(sh[a-z]*\)/../gI'
.. sells sea .. by the sea ..

(“我”需要更新版本的 sed 来忽略大小写)
这很简单:以“sh”开头的单词被双点 (..) 代替,但我如何制作它是这样的:... sells sea ...... by the sea .....

有什么想法吗?干杯!

最佳答案

我怀疑你不能在标准的 sed 中做到这一点,但你可以用 Perl 或其他具有更强大的正则表达式处理能力的东西来做到这一点。

$ echo "She sells sea shells by the sea shore" |
> perl -pe 's/(sh[a-z]*)/"." x length($1)/gei'
... sells sea ...... by the sea .....
$

e修饰符表示替换模式是可执行的Perl脚本;在本例中,它重复字符 . 的次数与匹配模式中的字符数一样多。 g 修饰符在整行中重复; i 修饰符用于不区分大小写的匹配。 Perl 的 -p 选项在 -e 选项指定的脚本中处理后打印每一行 — 替换命令。

关于regex - 使用 sed 替换等长文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com