in reply to search and replace on a line by line basis
#!perl -w # cases above the blank line should be replaced # successfully, below should not use strict; my ($len1, $len2, $len3) = (1, 8, 1); my $valid = qr/^.{$len1}(\d{$len2}).{$len3}$/; while (<DATA>) { next unless $_ =~ $valid; next unless $1 ne "00000000"; substr($_, $len1, $len2) = "20020101"; print; } __DATA__ X12345678X X14322678X X12534654X X12345678X X00000000X 12345678X X12345678 XX 12345678
perl -e'$_="nwdd\x7F^n\x7Flm{{llql0}qs\x14";s/./chr(ord$&^30)/ge;print'
|
|---|