Эта команда удаляет все двойные буквы:
sed 's/\([[:alpha:]]\)\1/\1/g'
\1
обозначает текст внутри \(…\)
, так это средство команды: везде, где существует алфавитный символ, сопровождаемый отдельно, замена одним только тем алфавитным символом.
Это преобразует, например. command
в comand
. Было бы лучше ограничить преобразование туда, где это необходимо: строки нес отступом.
sed '/^[[:alpha:]]/ s/\([[:alpha:]]\)\1/\1/g'
Этот текст является страницей справочника, представленной для терминалов, где полужирный представлен наложением: C\bC
представляется как полужирный, где \b
символ возврата (число символов 8, также известный как ^H). Если управляющие символы все еще там, забывают о дублирующихся буквах и вместо этого удаляют наложение.
sed -e 's/.\b//g'
Если у Вас есть способ отформатировать вывод, transofmr C\bC
к полужирному и _\bC
подчеркнуть.
sed -e 's/\(.\)\b\1/\e[1m\1\e[22m/g' -e 's/_\b\(.\)/\e[4m\1\e[24m/g' |
sed -e 's/\e[22m\e[1m//g' -e 's/\e[24m\e[4m//g'
Если Ваш sed не понимает Escape обратной косой черты, используйте буквенные символы (Ctrl+H для \b
и Ctrl + [для \e
).