sempre que tento ler uma linha em um arquivo.arquivo csv para de tratar a linha como uma única linha e a armazena em várias matrizes, como deveria ser apenas uma. O que estou vendo é que ao ler um arquivo .csv, ele parece conter alguns retornos de carro / esses quadrados estranhos quando o abro no bloco de notas. Quero remover esses caracteres do arquivo para poder ler corretamente o arquivo .csv saindo muito cedo.Como eu faria isso com um script perl.
Respostas:
1 para resposta № 1Você pode limpar o espaço em branco à direita com a função chomp () no perl. Você pode usar algo assim para mastigar todos os espaços em branco à direita e substituí-lo por uma única nova linha:
perl -ne "while(chomp) { } print "$_n";" filename.csv
0 para resposta № 2
Se você deseja ler o arquivo inteiro como uma linha, basta desativar o separador de registros de entrada:
local $/;
my $file = <>;
Ou seja, se você deseja usar os dados dentro do perl. Se você simplesmente deseja alterar o arquivo de entrada para uso de outros programas e não se importa com os feeds / retornos de linha:
perl -pi.bak -we "s/[rn]+//g" input.csv
Isso fará uma edição no local de input.csv
e salve um backup em input.csv.bak
. Esteja ciente de que, se você executar este comando duas vezes, o backup será substituído, portanto, salve um backup adequado em outro lugar.
Eu recomendaria isso apenas se você souber que esses símbolos não deveriam estar lá.