줄의 일부에만 일치하는 파일의 줄 전체를 변경하려고 합니다. 예를 들어, "$Netconf_DHCPStart" /
가 없기 때문에 다음 명령은 제대로 작동합니다 .
sed -e '/DHCP_START=/c\DHCP_START='"$Netconf_DHCPStart"
그러나 다음 명령은 작동하지 않습니다
sed '/static ip_address='"${Current_StaticIP}"'/c\static ip_address='"$Netconf_range"'.110' /etc/dhcpcd.conf
오류가 발생합니다.
sed: -e 표현식 #1, 문자 32: 알 수 없는 명령: '2'
"$Current_StaticIP"에 하나가 포함되어 있기 때문에 이것이 작동한다는 것을 알고 있지만 /
작동하도록 형식을 지정하는 방법을 잘 모르겠습니다. \
먼저 변수 내부의 내용을 이스케이프 해야 합니까 ?
답변1
변수에 나타날 것으로 예상되지 않는 문자가 있는 대체 \c...c
형식을 사용할 수 있습니다 .c
sed '\%static ip_address='"${Current_StaticIP}"'%c\static ip_address='"$Netconf_range"'.110'
( c\
sed 명령의 해당 부분은 두 번째 변수에 개행 문자가 포함되어 있지 않으면 문제가 되지 않습니다.)