Answers:
在GNU系统上,sed
如果您的语言环境使用多字节字符(如jimmij建议的那样),则需要使用或类似的名称,因为GNU 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