![sed + 큰따옴표 안의 설정 값](https://linux55.com/image/162678/sed%20%2B%20%ED%81%B0%EB%94%B0%EC%98%B4%ED%91%9C%20%EC%95%88%EC%9D%98%20%EC%84%A4%EC%A0%95%20%EA%B0%92.png)
파일은 이렇습니다
more /etc/sysconfig/chronyd
# Command-line options for chronyd
OPTIONS=""
-4
내부에 값을 설정해야 합니다.""
파일은 다음과 같습니다.
# Command-line options for chronyd
OPTIONS="-4"
sed를 다음과 같이 사용할 수 있습니다.
sed -i s'/OPTIONS=""/OPTIONS="-4"/g' /etc/sysconfig/chronyd
하지만 이는 좋은 옵션이 아닙니다. 왜냐하면 (큰따옴표 안에 공백이 있는 경우)
예를 들어,
more /etc/sysconfig/chronyd
# Command-line options for chronyd
OPTIONS=" "
답변1
다음이 작동해야합니다.
- 의
space
경우임의로 선택할 수 있는,
sed -r 's/OPTIONS="[[:space:]]?"/OPTIONS="-4"/g'
- 의
space
경우적어도 하나 이상,
sed -r 's/OPTIONS="[[:space:]]+"/OPTIONS="-4"/g'
또는 [@AdminBee가 언급한 대로] 두 가지 가능성이 있습니다.
- 의
space
경우적어도 하나 이상또는임의로 선택할 수 있는,
sed -r 's/OPTIONS="[[:space:]]*"/OPTIONS="-4"/g'
예를 들어,
[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n'
# Command-line options for chronyd
OPTIONS=" "
[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n' | sed -r 's/OPTIONS="[[:space:]]"/OPTIONS="-4"/g'
# Command-line options for chronyd
OPTIONS="-4"
답변2
sed
RE에서 주소 지정 사용:
sed -e '/^OPTIONS=/s/.*/OPTIONS="-4"/' /etc/sysconfig/chronyd
의미는 다음과 같습니다
- 일치하는 줄
^OPTIONS=
( 로 시작OPTION=
)에서,- 바꾸다모든 것통과
OPTIONS="-4"
.
- 바꾸다모든 것통과
답변3
이 시도,
sed 's/^OPTIONS=.*/OPTIONS="-4"/g' /etc/sysconfig/chronyd
또는
sed 's/\(^OPTIONS="\).*"/\1-4"/g' /etc/sysconfig/chronyd