sed 명령을 사용하여 파일의 일부 텍스트를 바꾸려고 합니다.
echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:/\W9042/native_transport_port:9080'
오류가 발생합니다.sed: 1: "s/native_transport_port ...": bad flag in substitute command: 'n'
시도했지만 echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080'
오류가 발생했습니다.sed: 1: "s/native_transport_port ...": unterminated substitute in regular expression
기본적으로 Native_transport_port를 검색하고 9042를 9080으로 바꾸려고 합니다.
답변1
s
마지막 명령으로 명령을 종료 해야 합니다 /
.
sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080/'
이렇게 하면 \s
교체 부품은 특별한 의미가 없으므로 s
그렇게 해야 합니다.
sed -E 's/native_transport_port:\s9042/native_transport_port: 9080/'
또는 공백을 있는 그대로 재현하고 싶다면,
sed -E 's/(native_transport_port:\s)9042/\19080/'
일치하는 텍스트를 교체하여 재사용합니다.
sed
Perl 스타일을 지원하지 않는 경우 \s
대신 공백으로 일치시킬 수 있습니다.
sed 's/native_transport_port: 9042/native_transport_port: 9080/'