另一個未終止的 '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

相關內容