【问题标题】:Hard regex with sed带 sed 的硬正则表达式
【发布时间】:2020-12-09 15:16:50
【问题描述】:

在 script.sh 文件中,我有以下行:

ExecStart=ssh -nN -R 46:192.168.0.1:56 192.168.0.2

我尝试用 sed 替换第二个端口(此处为 56),因为我知道它的值可以在 1 和 65535 之间变化。

所以我尝试了但没有成功:

sed -i -e "s/:.*[[:space/]]/other port number/2g' script.sh

你能帮我解决我的正则表达式吗?

【问题讨论】:

  • sed 's/:[0-9]*/other port number/2' 工作吗?

标签: regex linux bash sed


【解决方案1】:

你可以使用:

sed -i "s/:[0-9]\{1,5\} /:other port number /" script.sh

$ other_port_number="123"
$ echo "ExecStart=ssh -nN -R 46:192.168.0.1:56 192.168.0.2" | sed "s/:[0-9]\{1,5\} /:$other_port_number /"
ExecStart=ssh -nN -R 46:192.168.0.1:123 192.168.0.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    相关资源
    最近更新 更多