Exclua as linhas que começam e terminam com um dígito

0

Eu achei que isso era fácil, mesmo para um iniciante como eu, mas estou preso - canalizando um arquivo de texto como este:

cat file1.txt | sed '/^[0-9].*[0-9]$/d' > file2.txt

Esse regex captura as linhas em um editor de texto e funciona quando eu o uso para excluir todas as linhas em branco no mesmo arquivo, portanto, não há problema com o formato de nova linha (Linux / Windows), eu acho.

Eu me pergunto por que isso não exclui essas linhas, ou como isso pode ser feito de outra forma?

    
por Sadi 18.11.2015 / 13:15

1 resposta

0

Se

cat file1.txt | sed '/^\s*$/d' > file2.txt

funciona, mas

cat file1.txt | sed '/^[0-9].*[0-9]$/d' > file2.txt

não (embora se espere que funcione como o primeiro);

considerando que o arquivo de entrada pode incluir retornos de carro do Windows, então pode ser mais seguro usar este comando:

cat file1.txt | sed '/^[0-9].*[0-9][$\r]/d' > file2.txt

Isso deve funcionar em todos os casos, incluindo linhas que terminam com o retorno de carro do Linux ou do Windows.

    
por 18.11.2015 / 17:26

Tags