/ / Questão de quebra de linha para mover arquivo csv no Linux - regex, linux, perl, shell, sql-loader

Problema de quebra de linha para mover o arquivo csv no Linux - regex, linux, perl, shell, sql-loader

[Mudei o arquivo csv para o sistema Linux commodo binário. O conteúdo do arquivo de um campo é cuspido em várias linhas, suas seções de comentários, preciso remover a nova linha, manter o mesmo formato. Por favor, ajude no comando shell ou no comando perl

aqui está o exemplo para três registros, aparência real] Conteúdo original do arquivo

[Depois de movido para o linux, o campo de comentários é dividido em 4 linhas, quero manter o campo de comentários no mesmo formato, mas não quero os novos caracteres de linha

"Primeira linha

Segunda linha

Terceira linha o formato de todas as linhas não deve mudar " ]2

Respostas:

1 para resposta № 1

Como eu disse no meu comentário acima, as especificações não são claras, mas suspeito que é isso que você está tentando fazer. Aqui está uma maneira de carregar dados no Oracle usando sqlldr onde um campo é cercado por aspas duplas econtém alimentações de linha em que o final do registro é uma combinação de retorno de carro / alimentação de linha. Isso pode acontecer quando os dados vêm de uma planilha do Excel salva como .csv, por exemplo, onde a célula contém os feeds de linha.

Aqui está o arquivo de dados exportado pelo Excel como um arquivo .csv e exibido no gvim, com a opção ativada para mostrar caracteres de controle. Você pode ver os feeds de linha como o "$" caractere e o carro retorna como o "^M" personagem:

100,test1,"1line1$
1line2$
1line3"^M$
200,test2,"2line1$
2line2$
2line3"^M$

Construa o arquivo de controle como este usando o "str" cláusula na linha de opção infile para definir o fimde caráter recorde. Ele diz ao sqlldr que hex 0D (retorno de carro ou ^ M) é o separador de registro (desta forma, ele irá ignorar os avanços de linha entre aspas duplas):

LOAD DATA
infile "test.dat" "str x"0D""
TRUNCATE
INTO TABLE test
replace
fields terminated by ","
optionally enclosed by """
(
cola char,
colb char,
colc char
)

Após o carregamento, os dados ficam assim com os avanços de linha no campo de comentário (chamei-o de colc) preservados:

SQL> select *
2  from test;

COLA                 COLB                 COLC
-------------------- -------------------- --------------------
100                  test1                1line1
1line2
1line3

200                  test2                2line1
2line2
2line3

SQL>