해시 코드 값이 포함된 문자열을 구문 분석하고 해시 코드를 동등한 문자 표현으로 변환해야 합니다. 여기에 대한 샘플 코드가 있습니다.
I see that you#39;re eligible to get ticket for show on your device#44;
이제 스크립트는 다음으로 출력되어야 합니다.
I see that you're eligible to get ticket for show on your device,
답변1
Perl은 다음과 같은 경우에 유용합니다.
$ str='I see that you#146;re eligible to get ticket for show on your device#44;'
$ perl -pe 's/#(\d+);/chr($1)/ge' <<<"$str"
I see that you’re eligible to get ticket for show on your device,
이 출력을 얻으려면 터미널의 인코딩을 WINDOWS-1252로 설정해야 했습니다. 10진수 146은 유효하지 않습니다.ISO-8859-1 특징.
이러한 코드를 HTML 엔터티로 처리하기 위해 누락된 & 기호를 추가한 다음 디코딩합니다.
perl -MHTML::Entities -lne 's/(#\d+;)/&$1/g; print decode_entities($_)' <<<"$str"
답변2
Bash에서는 다음과 같이 할 수 있습니다:
$ str='I see that you#39;re eligible to get ticket for show on your device#44;'
$ re='#([0-9]*);'; while [[ $str =~ $re ]]; do b="${BASH_REMATCH[1]}"; c=$(printf "$(printf '\\U%x' "$b")"); str=${str//#$b;/$c}; done; echo "$a"
I see that you're eligible to get ticket for show on your device,