Substitua tudo, exceto letras maiúsculas pelo primeiro parâmetro fornecido (com sed)

1
sed "s/[a-z]/$1/g" <old.txt>new.txt 
echo "done"

Isso substitui apenas as letras minúsculas pelo primeiro parâmetro fornecido. Quero substituir tudo, exceto letras maiúsculas.

    
por Dragos Razvan 04.04.2017 / 13:05

1 resposta

5

sed "s/[^[:upper:]]/$1/g"

Substituir todos os caracteres que não sejam considerados letras maiúsculas na sua localidade pelo conteúdo de $1 (desde que $1 não contenha & , barra invertida ou barra ou caracteres de nova linha).

Observe que ele não substitui bytes que não fazem parte de caracteres válidos. Também será feliz converter caracteres combinados. Por exemplo, É é um caractere maiúsculo. Se for escrito como o caractere U + 00C9, ele será deixado sozinho, mas se for escrito como E seguido pelo caractere de acento agudo de combinação (U + 0301), isso será alterado para E$1 .

    
por 04.04.2017 / 13:14