另一个未终止的 's' 命令

另一个未终止的 's' 命令

我正在尝试对 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

相关内容