#!/usr/bin/perl use strict; use warnings; my $filein ='/path/to/in/file.c'; my $fileout='/path/to/out/file.c'; open(my $fhin, '<', $filein) or die "ERROR open $filein ($!)\n"; open(my $fhout, '>', $fileout) or die "ERROR open $fileout ($!)\n"; while(my $line=<$fhin>) { # suchen und ersetzen $line=~s/(^\s*#\s*if\(\s*)MY_OLD_CONST\s*==\s*1(\s*\))/$1MY_NEW_CONST == 5$2/; print $fhout $line; } close($fhout); close($fhin);