$ perl -Mstrict -Mwarnings -e ' my $cols = 4; my $re = qr{("(?:[^"\\]++|\\.)*+"\s*,*\s*)}m; my $file = do { local $/; <> }; my @params = $file =~ /$re/g; print "$_. ", splice(@params, 0, $cols), "\n" for 1 .. @params / $cols; ' "123", "DEF123","this is test","C:\Abhinav\test.jpg" "456", "DEF456","this is test","C:\Matt\test.jpg" "726", "DEF726","this is test","C:\Matt\test.jpg" 1. "123", "DEF123","this is test","C:\Abhinav\test.jpg" 2. "456", "DEF456","this is test","C:\Matt\test.jpg" 3. "726", "DEF726","this is test","C:\Matt\test.jpg"