終了していない別の「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'

しかし、何かが意図したとおりに読み取られず、それがエラーの原因になっている可能性があるため、一重引用符から二重引用符に変更しました。テストしてみましたが、結果は「終了していない '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

関連情報