Я пытаюсь сделать простую замену скрипту адреса 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, подключаюсь к машине Unix через ssh.
Изначально у меня было:
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