https://git.spwbk.site/swatson/yt-track-split/raw/master/sanitize_tl.pl ___________________________________ #!/usr/bin/perl # Move time codes to end of each line # and clean some other stuff up if needed use strict; use warnings; if ( ! defined $ARGV[0] ) { print "Need to pass track list\n"; exit 1; } my $file = shift(@ARGV); foreach my $line ( split("\n", `cat $file`) ) { chomp $line; if ( $line =~ m/([0-9]{2}:[0-9]{2}|[0-9]{1,2}:[0-9]{2}:[0-9]{2})/ ) { my $time_code = $1; $line =~ s/ $time_code//g; $line = $line . " " . $time_code; } if ( $line !~ m/^[0-9]{1,2}\./ ) { $line =~ s/^([0-9]{1,2})//g; my $track_number = $1; $line = "$track_number" . "." . "$line"; } my $sanitized_line; open(my $fh, ">>", \$sanitized_line); my @line_chars = split("",$line); foreach my $char ( @line_chars ) { if ( $char !~ m/[a-zA-Z0-9:\s\.-]/ ) { $char = ""; print $fh "$char"; } else { print $fh "$char"; } } close $fh; print "$sanitized_line\n"; }