파일의 값을 바꾸는 perl oneliner 명령은 간단합니다.
perl -i 's/oldval/newval/g' file.txt
그러나 특정 매개변수의 값을 바꾸려면(값은 "=" 구분 기호 뒤에 있음) Perl 한 줄 구문은 무엇이어야 합니까?
예
우리는 일치하고 싶어VIP_IP문자열을 입력하고 "=" 구분 기호 뒤의 값을 다른 값으로 바꿉니다.192.17.200.100 (Perl 한 줄 구문 사용)
more file.txt
VIP_IP=172.17.200.15
if [[ $VIP_IP = $HOST_IP ]]
then
.
.
.
기대되는 성과
more file.txt
VIP_IP=192.17.200.100
if [[ $VIP_IP = $HOST_IP ]]
then
.
.
.
답변1
정규 표현식에 키를 포함하세요.
작성 방법을 정확히 알고 있다면 긍정적인 뒤돌아보기 어설션을 사용할 수 있으며 더 쉽습니다.
perl -pi -e 's/(?<=^\$VIP_IP=).*/192.17.200.100/' your_file
그렇지 않으면 다음을 사용하여 대체 텍스트에 일치하는 키를 포함해야 합니다 $1
.
perl -pi -e 's/(^\$VIP_IP\s*=).*/$1192.17.200.100/' your_file