(export LC_ALL=C; xxd -revert -plain <<< 1234abcd | rev | tr -d '\n' | xxd -plain | tr -d '\n')
rev: stdin: Invalid or incomplete multibyte or wide character
대부분은 cdab3412를 반환합니다.
하지만 반환
rev: stdin: Invalid or incomplete multibyte or wide character
이 문제를 어떻게 해결하나요?
답변1
시스템이 rev
바이트 시퀀스를 문자로 처리할 수 없다면 Perl을 사용해 보십시오.
$ (export LC_ALL=C; xxd -revert -plain <<< 1234abcd | perl -pe '$_ = reverse $_' | xxd -plain)
cdab3412
개행 제거를 생략했습니다. 불필요한 것 같습니다.
답변2
echo 1234abcd | grep -o .. | tac | paste -sd '' -
cdab3412
답변3
사용 rev
및 sed
:
$ rev <<< 1234abcd | sed -E 's/(.)(.)/\2\1/g'
cdab3412
그리고 awk
:
$ awk -F '' '{ for(i=NF-1;i>0;i-=2) printf "%s", $i $(i+1) } END{ print "" }' <<< 1234abcd
cdab3412
답변4
rev
다음 줄로 바꾸십시오 .
perl -nle 'print scalar reverse $_'
원천:Perl은 한 줄씩
적어도 잘못된 인코딩으로 인해 중단되지는 않습니다.
더 쉽게 사용하려면 다음 별칭을 만드세요.
alias reverse="perl -nle 'print scalar reverse \$_'"