while() { chomp; my @fields = split /,/; my $path_str = $fields[6]; do { warn "Empty field 7"; next } unless $path_str; my @path = split "\\", $path_str; # remove null fields if you really have \\ in there @path = grep { $_ } @path; # assuming you want to remove the 17 and 16 dirs in the example my $fixed_path = join "\\", @path[0,2,3] my $out = join '|', @fields[0..5], $fixed_path, "\n"; print OUT $out; }