小编Str*_*Hat的帖子

bash / sh 脚本来替换文本文件中某些标签/字符串之间的文本

我正在创建将使用 /bin/sh 或 /bin/bash 脚本执行的可执行文件,
我有一个包含结构的文件,例如,配置文件中只有一个#start#end标签,我想替换它们之间的文本那些标签,

...

#start
FirewallRuleSet global {
    FirewallRule allow tcp to google.com
    FirewallRule allow tcp to facebook.com

#more rules
}
#end

FirewallRuleSet known-users {
    FirewallRule allow to 0.0.0.0/0
}

...
Run Code Online (Sandbox Code Playgroud)

所需的输出将是,

...

#start
FirewallRuleSet global {
    FirewallRule allow tcp to google.com
    FirewallRule deny tcp to facebook.com
    FirewallRule deny tcp to twitter.com
    FirewallRule allow tcp to exaple.com



#more rules
}
#end

FirewallRuleSet known-users {
    FirewallRule allow to 0.0.0.0/0
}

...
Run Code Online (Sandbox Code Playgroud)

我怎样才能更换之间的整个文本#start和 …

shell openwrt replace

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

使用 shell 脚本获取字符串的一部分

我有一个字符串

/ip/192.168.0.1/port/8080/
Run Code Online (Sandbox Code Playgroud)

我想获得两个单独的变量,它们将包含端口和 IP

喜欢。192.168.0.18080

据我所知 /ip/ 和 /port/ 会一直存在我得到的 Ip 如下,

expr /ip/192.168.0.1/port/8080/ : '/ip/\(.*\)/port/' 
Run Code Online (Sandbox Code Playgroud)

这将输出192.168.0.1 只是不知道如何获取端口,我尝试了类似的命令,

expr /ip/192.168.0.1/port/8080/ : '/port/\(.*\)/' 
Run Code Online (Sandbox Code Playgroud)

但它没有给出端口 .. 如何获取端口。

shell string shell-script

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

shell ×2

openwrt ×1

replace ×1

shell-script ×1

string ×1