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'
しかし、何かが意図したとおりに読み取られず、それがエラーの原因になっている可能性があるため、一重引用符から二重引用符に変更しました。テストしてみましたが、結果は「終了していない 's' コマンド」のままでした。
どのようなアイデアやアドバイスでも大歓迎です!
スクリプト全体
#!/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
を置いたり、コマンドを引用符で囲んだりする必要はありません。次のように変更します。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