Data in array @new_content_lines; 1,2,0,First Test,,,,0,0,7,,,,,,,,,,, 1,2,0,Starting madvise bss tests,1,buffer,G,1,1,0,Y,,,P,G,,,,,, 1,2,0,Starting madvise bss tests,2,buffer,G,1,2,0,Y,,,P,G,,,,,, 1,2,0,Starting madvise bss tests,3,buffer,G,1,3,0,Y,,,P,G,,,,,, 1,2,0,Second Test,,,,0,0,7,,,,,,,,,,, 1,2,0,Starting madvise bss tests,1,buffer,G,1,1,0,Y,,,P,G,,,,,, 1,2,0,Starting madvise bss tests,2,buffer,G,1,2,0,Y,,,P,G,,,,,, 1,2,0,Starting madvise bss tests,3,buffer,G,1,3,0,Y,,,P,G,,,,,, Regular expression to check : Search first four comma or tab separated alpha numeric values then search for three blank comma separated values and finally search for (\d),0,(\d) pattern in a line (0 always exist between the numbers in the last match) Grep output expected : 1,2,0,First Test,,,,0,0,7,,,,,,,,,,, 1,2,0,Second Test,,,,0,0,7,,,,,,,,,,,