我正在尝试对 IPv4 地址脚本进行简单的替换。
sed "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/192.100.100.100/g"
这就是我所拥有的。如标题所述,我收到一个未终止的 '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'
但我将其从单引号更改为双引号,因为某些内容可能没有按预期读取,这可能导致了我的错误。我测试了它,结果仍然是相同的“未终止的命令”。
任何想法或建议都会很棒!
整个脚本
#!/bin/sed -f
#sed 's/[^@ ]*@[^@]*\.[^@ ]*\.[^@]*/[email protected]/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"
文件输入示例:
From: Mail System Internal Data <[email protected]>
Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
X-IMAP: 1322061792 0000000000
Status: RO
Email message goes here.
From [email protected] Tue Nov 22 15:24:01 2011 -0500
Status: R
X-Status:
X-Keywords:
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
答案1
你的脚本是一个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