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
쉘 스크립트가 아닌 스크립트입니다. 따라서 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