이 문자열에서 [%L10n.msg('foo')%]
내부 텍스트를 가져와야 [%L10n.msg('
하므로 ')%]
이 예에서는 을 가져와야 합니다 foo
.
많은 예를 찾았지만 그 중 아무 것도 작동하지 않았습니다. 다음과 같이 시도했습니다.
echo "[%L10n.msg('foo')%]" | sed -n -e '/[%L10n.msg(\'/,/\')%]/p'
하지만 오류가 발생해요
bash: 예상치 못한 마커 ")" 근처에 구문 오류가 있습니다.
고쳐 쓰다: 내 문자열이 다음 문자열에 있을 수 있다고 상상해 보세요.
Some ' very [%% ]long ' text [%L10n.msg('foo')%] with lot of [%characters%]
테스트 파일:
Some ' very [%% ]long ' text [%L10n.msg('foo')%] with lot of [%characters%]
fefe
<a class="w3-bar-item w3-button" href='/html/html_examples.asp'>HTML Examples</a>
<a class="w3-bar-item w3-button" href='/html/html_exercises.asp'>HTML Exercises</a>
fefrheerghirlg wgwa g [%L10n.msg('foo')%]
<>"
답변1
어때요?
$ echo "[%L10n.msg('foo')%]" | sed "s/\[%L10n.msg('//; s/')%]//"
foo
또는 새 입력 샘플을 사용하여
echo "Some ' very [%% ]long ' text [%L10n.msg('foo')%] with lot of [%characters%]" | sed "s/^.*\[%L10n.msg('//; s/')%].*$//"
foo
또는 입력을 두 번째로 변경합니다(읽기테스트 파일지금) 시도해 보세요
sed -n "/^.*\[%L10n.msg('/ {s///; s/')%].*$//;p}" file
foo
foo