내 PHP 파일에는 $downtime_hosts를 사용하여 정의된 일부 변수가 있습니다. 필요한 것은 $downtime_hosts = 8;
파일에서 여러 번 사용되는 $downtime_hosts = 15;
다른 변수에 영향을 주지 않고 전체 변수를 찾아 바꾸는 명령입니다.$downtime_hosts
여기에서 내 숫자 8,15,16은 언제든지 변경될 수 있습니다. 필요한 것은 $downtime_hosts = newinteger로 시작하는 줄을 찾아서 $downtime_hosts = anyinteger
새 줄 $downtime_hosts = newinteger로 바꾸는 것입니다. 참고하시거나 anyinteger / newinteger=2,3,4,15
아무거나
$downtime_hosts = 8;
$total_hosts = $all_hosts - $downtime_hosts;
if ($host_up == $total_hosts )
Hosts under downtime $downtime_hosts
`
어떤 의견이라도 환영합니다!
답변1
sed 's/$downtime_hosts = 8;/$downtime_hosts = 15;/' file.php
$
패턴 끝에서 발견되지 않는 한 앵커 역할을 하지 않으므로 문제가 발생하지 않습니다 . 스크립트 sed
는 작은따옴표로 묶어야 합니다. 그렇지 않으면 쉘은 $downtime_hosts
쉘 변수로 확장하려고 시도합니다.
줄 시작 부분의 패턴만 일치합니다.
sed 's/^$downtime_hosts = 8;/$downtime_hosts = 15;/' file.php
정수 8이 임의의 정수일 수 있는 경우:
sed 's/^$downtime_hosts = [0-9]*;/$downtime_hosts = 15;/' file.php
정수를 쉘 변수가 보유하는 정수로 바꾸려면 다음을 수행하십시오 $newint
.
sed "s/^\$downtime_hosts = [0-9]*;/\$downtime_hosts = $newint;/" file.php
이제 쉘이 변수를 sed
확장하려면 편집 스크립트 주위에 큰따옴표를 사용해야 합니다 . $newint
이는 또한 우리가 두 개의 기존 쉘에서 탈출해야 함을 의미합니다 $
.