use strict; my $find = qr/^(?:H0|HT)/; open (NEW, ">", "OUTPUT.txt" ) or die "could not open:$!"; open (FILE, "<", "INPUT.txt") or die "could not open:$!"; while () { print NEW if (/^\s{32}\S\s$find/); } close (FILE); close (NEW); #### NAME PT # AT DOE HT00000000 I DOE HT00000000 S DOE HT00000000 I SMITH HT00000000 M DOE HT00000000 I DOE HT00000000 I DOE H000000000 I DOE H000000000 O SMITH H000000000 I #### HT00000000 I HT00000000 S HT00000000 I HT00000000 M HT00000000 I HT00000000 I H000000000 I H000000000 O H000000000 I