У меня настоящий беспорядок в файле с разделителями каналов, который мне нужно загрузить в базу данных.Файл имеет 35 полей и, следовательно, 34 канала.Одно из полей состоит из HTML-кода, который для некоторых записей включает несколько разрывов строк.К сожалению, нет ничего хорошего в том, куда попадают разрывы строк.
Решение, которое я придумала, состоит в том, чтобы подсчитывать количество каналов в каждой строке и, пока это число не достигнет 34, удалить из этой строки символ новой строкилиния.Я не очень хорошо разбираюсь в Perl, но думаю, что близок к достижению того, что я хочу сделать.Есть предложения?
#!/usr/local/bin/perl
use strict;
open (FILE, 'test.txt');
while (<FILE>) {
chomp;
my $line = $_;
#remove null characters that are included in file
$line =~ tr/\x00//;
#count number of pipes
my $count = ($line =~ tr/|//);
#each line should have 34 pipes
while ($count < 34) {
#remove new lines until line has 34 pipes
$line =~ tr/\r\n//;
$count = ($line =~ tr/|//);
print "$line\n";
}
}