Если у меня есть строка как:
Thhiisss iisss mmyyy nameeee
Я хочу напечатать это как:
This is my name
Что такое команда Unix для этого?
command-line
text-processing
Кришна
источник
источник
Ответы:
С
tr
:Пояснение:
-s
Переключательtr
«сжимает» повторяющиеся символы. Как показано, переключатель может использоваться с рядом символов:a
доz
.источник
В системе GNU вам нужно использовать
sed
или подобное, если ваша локаль использует многобайтовые символы ( как предлагает jimmij ), потому что GNUtr
может ссылаться только на символ на байт. В локали ASCII вы можете удалить все дубликаты,tr
например:Так...
... печать ...
Вы также можете сделать это выборочно, ссылаясь на ваши цели по диапазону:
...или...
... которые работают как одно и то же, и которые оба печатают:
... или использование
[:punct:]
,[:digit:]
,[:lower:]
,[:alpha:]
или все , что вы хотели бы. Вы также можете отменить выбор с /-c
так ...... печать ...
источник
Один из способов с
sed
:или даже проще:
(спасибо Костас и Микесерв за комментарии).
источник
sed 's/\(.\)\1\+/\1/g'
Попробуй
tr
:источник