Como remover palavras com n caracteres? [RESOLVIDO]

1. Como remover palavras com n caracteres? [RESOLVIDO]

Iago Lira
iagolira

(usa Debian)

Enviado em 25/01/2016 - 17:49h

Olá pessoal!
Hoje preciso da ajuda de vocês para remover somente as palavras que possuem somente n caracteres.


Exemplo: Remover somente as palavras que possuem 10 caracteres.



  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 28/01/2016 - 21:02h

COnstrui o comando anterior para palavras num texto qualquer.
Qual o padrao do arquivo que quer apagar ?

POsta algumas linhas do arquivo real, pfcr.

Se for como no seu exemplo, o comando seria:
Apagando os caracteres:
sed -ri 's/^.{10}$//g' arquivo  

Apagando a linha:
sed -ri '/^.{10}$/d' arquivo  


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

3. Re: Como remover palavras com n caracteres?

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 25/01/2016 - 18:10h

Olá,

Supondo que as palavras estejam em um texto padrão, o comando abaixo faz o que vc quer porém, os caracteres de pontuação e numeros tbm contam:
Exemplo com 10 cracteres
sed -ri 's/ .{10} //g' arquivo.txt 

Caso não queira contar os carateres de pontuaçcão:
sed -ri 's/([A-Z].{9}| .{10})([[:punct:]] ?| )//g' arquivo.txt

Neste caso a expressão se resume assim: TROCAR sequencias de 10 caracteres, contanto que inicie com espaço ou uma letra Maiúscula (no caso de inicio de frase) e terminem com espaço ou pontuação, POR NADA.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


4. Re: Como remover palavras com n caracteres? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 27/01/2016 - 02:27h

Funcionou?
abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


5. Re: Como remover palavras com n caracteres? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/01/2016 - 02:42h

tonyhts escreveu:

Olá,

Supondo que as palavras estejam em um texto padrão, o comando abaixo faz o que vc quer porém, os caracteres de pontuação e numeros tbm contam:
Exemplo com 10 cracteres
sed -ri 's/ .{10} //g' arquivo.txt 

Caso não queira contar os carateres de pontuaçcão:
sed -ri 's/([A-Z].{9}| .{10})([[:punct:]] ?| )//g' arquivo.txt

Neste caso a expressão se resume assim: TROCAR sequencias de 10 caracteres, contanto que inicie com espaço ou uma letra Maiúscula (no caso de inicio de frase) e terminem com espaço ou pontuação, POR NADA.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


{10} com espaços não tira os espaços em volta da palavra e deixa tudo grudado?

Não é o caso de usar delimitador? Não sei dar exemplo mas deve ser \b se for isto mesmo.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



6. Re: Como remover palavras com n caracteres?

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 27/01/2016 - 03:01h

Boa !

Acho que assim fica melhor:
sed -ri 's/([A-Z][[:alnum:]]{9}| [[:alnum:]]{10})([[:punct:]] ?| )//g' arquivo.txt


Agora ele só "apaga" palavras que:
* Contenham 10 caracteres Alfanumericos (vai ue ele use em um arquivo que tenha numeros tbm)
* Que Iniciem com Letra Maiuscula Ou minuscula que seja cercado por espaços ou termine com pontuação ( existindo ou nao espaço apos a pontuação) Ex:
Blahblah00 
blahblah01
blahblah02.
blablabla03.


Abs

---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


7. Re: Como remover palavras com n caracteres? [RESOLVIDO]

Iago Lira
iagolira

(usa Debian)

Enviado em 28/01/2016 - 20:51h

tonyhts escreveu:

Boa !

Acho que assim fica melhor:
sed -ri 's/([A-Z][[:alnum:]]{9}| [[:alnum:]]{10})([[:punct:]] ?| )//g' arquivo.txt


Agora ele só "apaga" palavras que:
* Contenham 10 caracteres Alfanumericos (vai ue ele use em um arquivo que tenha numeros tbm)
* Que Iniciem com Letra Maiuscula Ou minuscula que seja cercado por espaços ou termine com pontuação ( existindo ou nao espaço apos a pontuação) Ex:
Blahblah00 
blahblah01
blahblah02.
blablabla03.


Abs

---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---



Tem como ser mais geral? Eu testei com um arquivo contendo:
1234567890
1v334bbh43
Dksf4u9g4r
*&*5Dvhdvv
7c88B*b88d

Mas não apagou nada.
Tem como generalizar o comando?


8. Re: Como remover palavras com n caracteres? [RESOLVIDO]

Iago Lira
iagolira

(usa Debian)

Enviado em 28/01/2016 - 20:51h

Preciso muito que seja o mais geral o possível.


9. Re: Como remover palavras com n caracteres?

Iago Lira
iagolira

(usa Debian)

Enviado em 28/01/2016 - 21:46h

tonyhts escreveu:

COnstrui o comando anterior para palavras num texto qualquer.
Qual o padrao do arquivo que quer apagar ?

POsta algumas linhas do arquivo real, pfcr.

Se for como no seu exemplo, o comando seria:
Apagando os caracteres:
sed -ri 's/^.{10}$//g' arquivo  

Apagando a linha:
sed -ri '/^.{10}$/d' arquivo  


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---




Muito obrigado tonyhts por sua contribuição. Estes últimos códigos funcionaram.
E encontrei também:
 sed '/.\{10\}/d'  



10. Re: Como remover palavras com n caracteres? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 28/01/2016 - 21:55h

Que bom que funcionou!

o seu exemplo: sed '/.\{10\}/d' é o mesmo que sed -r '.{10}/d'

A opção -r do sed faz com que não precise usare os scapes "\".

Abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts