【问题标题】:sed substitute with regexsed 用正则表达式替换
【发布时间】:2021-12-31 08:05:46
【问题描述】:

我有一个文件test123.txt,其中包含一个类似clover-12345678.tmp 的字符串实例,其中前缀始终为clover-,后缀始终为.tmp,但中间的数字可以是任何8 位数字.

我希望用不同的字符串butterfly 替换文件中的这个字符串。

我要替换的字符串的正则表达式是clover-\d\d\d\d\d\d\d\d\.tmp

我的 sed 替换命令是:

sed -i -e "s/clover-\d\d\d\d\d\d\d\d\.tmp/butterfly/g" test123.txt

但是,这不会更改 test123.txt 文件中的任何内容,即使它包含 clover-12345678.tmp 的一个实例。

我该如何解决这个问题?

【问题讨论】:

  • 请参阅here 了解字符类和括号表达式(例如数字等),并在下面了解正则表达式扩展。

标签: regex sed


【解决方案1】:

我该如何解决这个问题?

\d 只是字符d。将\d 替换为[0-9]。你也可以[0-9]\{8\}{

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 2013-08-25
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多