답변:
GNU 시스템 sed
에서는 GNU 가 바이트 당 문자 만 참조 할 수 있기 때문에 로케일이 멀티 바이트 문자 ( jimmij에서 제안한대로 )를 사용하는 경우 이와 유사하거나 비슷해야합니다 tr
. ASCII 로케일에서는 다음 과 같은 모든 복제본을 제거 할 수 있습니다 tr
.
LC_ALL=C tr -s '\0-\255' <input
그래서...
echo Thhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\0-\255'
...인쇄물...
This is my name
범위별로 대상을 참조하여 선택적으로 수행 할 수도 있습니다.
echo TThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\101-\132'
...또는...
echo TTTThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '[:upper:]'
... 똑같이 작동하고 두 가지 모두 인쇄됩니다.
Thhiisss iisss mmyyy nameeee
... 또는 사용 [:punct:]
, [:digit:]
, [:lower:]
, [:alpha:]
또는 당신이 원하는 무엇이든. 당신은 또한 / 선택을 부정 할 수 있습니다 -c
...
echo 'TTTThhiisss iisss mmyyy nameeee' |
LC_ALL=C tr -cs '[:upper:]'
...인쇄물...
TTTThis is my name