sed를 사용하여 줄을 바꾸는 방법은 무엇입니까?

sed를 사용하여 줄을 바꾸는 방법은 무엇입니까?

노선을 바꾸려고 하는데

"['Used', 170], <c\!--Ma_P_ST1_vCPU_Used-->" 

그리고

"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->" 

html 파일에서.

내가 시도한 것은 다음과 같습니다.

sed "s/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/" Code_edit.html

여러 방패를 시도했습니다. 도움이 안돼.

답변1

sed따옴표로 묶어야 하는 특별한 의미를 가진 일부 문자가 있습니다 .
이 문장에 대하여:

['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->

[, ]및 다음을 인용해야 합니다 \.

\['Used', 170\], <\\\!--Ma_P_ST1_vCPU_Used-->

그런 다음 숫자 주위의 텍스트를 캡처하려면 캡처 괄호를 추가하세요.

\(\['Used', \)170\(\], <\\\!--Ma_P_ST1_vCPU_Used-->\)

그리고 그것을 (숫자 목록) 170으로 변환합니다. [0-9]*이 작업을 수행한 후 sed 명령은 다음과 같습니다.

sed "s/\(\['Used', \)[0-9]*\(\], <\\\!--Ma_P_ST1_vCPU_Used-->\)/\1777\2/" <file

각 괄호에 캡처된 문자열을 \1사용합니다 .\2

답변2

이것이 도움이 됩니까?

sed '/!--Ma_P_ST1_vCPU_Used-->/ s/170/555/' file
"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->" 

올바른 줄을 검색하고 170을 555로 바꿉니다.

관련 정보