msoliver
(usa Debian)
Enviado em 18/01/2016 - 11:36h
luizsouza99 escreveu:
Deu certo, dei o comando: cat $HOME/texto | sed "s/'//g" e funcionou, antes eu estava colocando sed 's/'//g' e por isso não funcionava.
Muito obrigado!
outra coisa, estou removendo vários símbolos, tem como os comandos abaixo ficarem menores?
1 cat $HOME/texto | sed 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚ/aAaAaAaAeEeEiIoOoOoOuU/' > $HOME/.texto
2 cat $HOME/.texto | sed 'y/ABCDEFGHIJKLMNOPQRSTUVXZYWK/abcdefghijklmnopqrstuvxzywk/' > $HOME/.texto2
3 cat $HOME/.texto2 | sed 's/“//g' | sed 's/”//g' | sed 's/"//g' > $HOME/.texto
4 cat $HOME/.texto | sed 's/‘//g' | sed 's/–//g' > $HOME/.texto2
5 cat $HOME/.texto2 | sed 's/[.]//g' | sed 's/[$]//g' | sed 's/[}]//g' | sed 's/[{]//g' > $HOME/.texto
6 cat $HOME/.texto | sed 's/-//g' | sed 's/*//g' | sed 's/_//g' | sed 's/,//g' | sed 's/[•]//g' > $HOME/.texto2
7 cat $HOME/.texto2 | sed 's/ / /g' | sed 's/ / /g' | sed 's/(//g' | sed 's/&//g' > $HOME/.texto
8 cat $HOME/.texto | sed 's/!//g' | sed 's/?//g' | sed 's/@//g' | sed 's/#//g' > $HOME/.texto2
9 cat $HOME/.texto2 | sed 's/(//g' | sed 's/)//g' | sed 's/=//g' | sed 's/§//g' > $HOME/.texto
10 cat $HOME/.texto | sed 's/<//g' | sed 's/>//g' | sed 's/://g' | sed 's/;//g' > $HOME/.texto2
11 cat $HOME/.texto2 | egrep -v "^$" > $HOME/.texto
estou usando um sed para cada simbolo, porque estou trocando por nada, e por nada não consegui fazer algo mais compacto. Obrigado!
Bom dia Luiz.
Justamente, se quer trocar o
' usa
"
Vamos lá...
Item 01
sed -i 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚ/aAaAaAaAeEeEiIoOoOoOuU/' $HOME/.texto
Obs: Use -i , para alterar o arquivo.
OBS:
Uma forma de reduzir esse comando é, primeiramente converter para minuscula, conforme mostrado no ITEM 2.
Ficaria:
sed -i 'y/áàãâéêíóõôú/aaaaeeiooou/' $HOME/.texto
Item 02 (reduziu bastante . . . )
sed -i 's/\([A-Z]\)/\L&/g' HOME/.texto2
Traduzindo:
Caso a letra MAIÚSCULA \([A-Z]\) , pego o que "casou" & e altero para MINUSCULA \L
ITENS 3, 4 e outros que tenham pontuação
sed -i 's/[[:punct:]]//g' ARQUIVO.txt
Exemplo:
echo "(+*][Debian[ Linux?/:;][.,)"
(+*][Debian[ Linux?/:;][.,)
echo "(+*][Debian[ Linux?/:;][.,)"|sed 's/[[:punct:]]//g'
Debian Linux
OPS!!!!
Pelo que tudo indica, você quer somente letras....
Então vamos direto ao assunto.....
EXEMPLO :
echo "(+*][D#@ebian[ L=+inux?/:;][.,) é o \$#S.*(O. que &eu U*8TIL\&I,<Z;:/?O"|sed 's/[^[:alpha:] ]//g'
Saída:
Debian Linux é o SO que eu UTILIZO
Traduzindo, o que não é
Letra , troque por nada!
Depois troque para minuscula.
OBS.: Se te ajudei, marque como resolvido e "melhor resposta" :)
Att.:
Marcelo