use*_*571 1 scripting sed shell-script
我正在尝试对 IPv4 地址脚本进行简单的替换。
sed "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g"
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的。如标题所述,我收到了一个未终止的“s”命令。
编辑:我在 Windows 上运行,通过 ssh 连接到 Unix 机器。
我原来有:
sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g'
Run Code Online (Sandbox Code Playgroud)
但是我将它从单引号更改为双引号,因为某些内容可能没有按预期读取,这可能导致了我的错误。我对其进行了测试,结果仍然是“未终止的‘s’命令”。
任何想法或建议都会很棒!
整个脚本
#!/bin/sed -f
#sed 's/[^@ ]*@[^@]*\.[^@ ]*\.[^@]*/account@example.com/g'
#sed 's/[^@]*\.[^@]*\.[^@]*/example.com/g'
sed "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g"
Run Code Online (Sandbox Code Playgroud)
示例文件输入:
sed "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g"
Run Code Online (Sandbox Code Playgroud)
您的脚本是sed
脚本,而不是 shell 脚本。所以你不需要放在sed
行首,或者在命令周围加上引号。将其更改为:
#!/bin/sed -f
s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g
Run Code Online (Sandbox Code Playgroud)