pt sed ou tr one-liner para apagar todos os dígitos numéricos

4

Portanto, eu tenho este arquivo de texto e consiste principalmente em caracteres alfanuméricos. É um documento padrão. Mas desde que copiei e colei de um PDF, há números de página lá. Eu não ligo muito para o número ocasional que não é uma página, então eu acho que vou acabar com todos eles com sed ou tr . Apenas marginalmente mais rápido do que encontrar e substituir o primeiro zero, depois um, depois dois, etc. na GUI, afinal.

Então, como faço isso?

    
por ixtmixilix 07.03.2011 / 01:41

2 respostas

6

Para remover todos os dígitos, aqui estão algumas possibilidades:

tr -d 0-9 <old.txt >new.txt
tr -d '[:digit:]' <old.txt >new.txt
sed -e 's/[0-9]//g' <old.txt >new.txt

Se você quer apenas se livrar dos números das páginas, provavelmente há uma regexp melhor que você pode usar para reconhecer apenas os dígitos que são números de página. Por exemplo, se os números de página estiverem sempre sozinhos em uma linha, exceto os espaços em branco, o comando a seguir excluirá apenas as linhas que contêm apenas um número cercado por espaços em branco:

sed -e '/^ *[0-9]\+ *$/d' <old.txt >new.txt

( \+ é uma extensão GNU; com algumas implementações sed , você pode precisar da alternativa padrão mais longa: \{1,\} ou use [0-9][0-9]* ).

Você não precisa usar a linha de comando para isso, no entanto. Qualquer editor decente tem recursos de pesquisa e substituição regulares.

    
por 07.03.2011 / 02:03
1

Eu acredito que o que você está procurando é:

tr -d 0-9
    
por 07.03.2011 / 02:00