【问题标题】:Sed command and pattern spaceSed 命令和模式空间
【发布时间】:2018-01-20 18:12:19
【问题描述】:

我在看这个脚本

sed -i \ -e "s/^cluster_name.*/cluster_name: ${cluster_name}/g" \

如何用 ^ 开头和 $ 结尾来确定模式空间? 为什么我需要它们?

【问题讨论】:

  • bash${cluster_name} 替换为变量cluster_name 的内容。
  • @Cyrus 但是没有 ^,会不会一样?
  • 不,没有^ 正则表达式cluster_name.* 也可以匹配my_cluster_name
  • @MikiBelavista ^“锚”匹配到行的开头,如果行以它开头,则只匹配cluster_name。没有它,以及 sed 的“贪婪”,它可能会匹配字符串中任意位置的 cluster_name

标签: bash sed


【解决方案1】:

^ 和 $ 是正则表达式运算符。我不知道这些运算符是如何实现的。但是当您希望从行首或行尾完全匹配时,您需要使用它们。
例如
Line1:这是第一行。
-> 以 'space' 开头,以 '.' 结尾
第 2 行:这是虚拟的第一行
->以“T”开头并以“e”字符结尾。

如果我将正则表达式用作“^T.*e$”,那么它将匹配第 2 行。 Please refer more information

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 2012-12-29
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多