我正在嘗試對 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