2010-08-04 7 views
1

나는 다음과 같은 라인을 가지고 프록시 설정 파일이 있습니다Linux의 파일에서이 텍스트를 명령 줄에서 바꾸려면 어떻게해야합니까?

Allow 212.21.3.44 
나는 그것이 변경 될 때 나의 새로운 IP 주소로 해당 IP 주소 부분을 교체하고 싶습니다

. 아마도 라인 번호를 사용하여 검색하는 것이 더 쉬울 것입니다. & ndash 설정 파일이 특정 설정 이외의 다른 것으로 변경 될 것이라고 생각하지 않습니다.

명령 줄에서 Perl, sed 등과 같은 방법으로 어떻게 할 수 있습니까?

답변

2

, 당신은 사용할 수 있습니다

sed -i '<line number> s/Allow .*$/Allow <new ip>/g' <filename>

+0

위대한 작품 - 감사합니다! – jack

1
sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/my.new.ip.here/' file.txt 

장소에 파일을 변경됩니다 -i 플래그 (- 나를 위해 우분투에서 작동 괜찬아 *의 배포판/맛에 따라 다름). 특정 줄 번호를 변경 sed를 사용하려면

+0

그리고에 변경 않는 대부분의 리눅스 박스의 추가 할 수 'sed'옵션을 사용하여 해당 파일을 직접 변경할 수 있습니다. –

+0

@Kaleb 그것에 대해 몰랐습니다! 감사합니다 - 내 대답을 업데이트하십시오. –

+0

포스터가 하나의 특정 라인을 언급하면 ​​파일의 모든 IP 주소를 대량으로 변경하는 것이 위험한 것 같습니다 –

1

이 경우 줄 번호가

sed -i '/Allow/s/Allow .*$/Allow <new ip>/' <filename> 
관련 문제