Remover guia, nova linha, retorno de carro até encontrar char

0

Eu tenho um arquivo CSV que possui um separador de registro de ,\n . Uma das colunas, tem a possibilidade de conter abas e novas linhas, que desejo remover. Como removo esses caracteres ( \t\n\r ) usando sed e / ou awk até encontrar o separador de registro?

    
por menorah84 18.03.2016 / 12:07

1 resposta

1

Aqui você vai:

cat input_file | tr -d '\r\t' | sed ': loop_start; /,$/b; N; s/\n//; b loop_start'

Explicação:

  1. tr é usado para excluir ( -d ) todos os \r e \t chars.
  2. Em seguida, os loops sed ( : loop_start; ...; b loop_start ) e
  3. une todas as linhas ( N ) e
  4. remove a nova linha ( s/\n// )
  5. até encontrar o separador de registro ( /,$/ ) e
  6. ramifica para o final do script ( b ), onde iniciará o script com a próxima linha de entrada.
por 18.03.2016 / 14:07

Tags