perl -wln -e 'next if /^NSString/; print' whatever.m > nonsstring.m
Это просто пропустит строки, начинающиеся с "NSString". Если вы хотите что-то более изощренное, например, замену частей строк с NSStrings, вам придется дать нам больше информации.
РЕДАКТИРОВАТЬ: Хорошо, в соответствии с разъяснением ..
use strict;
use warnings;
use 5.010;
use autodie;
my $file = 'whatever.m';
open my $fh, '<', $file;
while (<$fh>) {
say $+{capture} for /NSString
\s* \* \s*
[^=]+ \s* = \s*
(?<capture>@[^;]+?);
/gx;
}
Или как удобный однострочный:
perl -wln -E 'print $+{capture} for /NSString\s*\*\s*[^=]+\s*=\s*(?<capture>@[^;]+?);/g' whatever.m
РЕДАКТИРОВАТЬ: Так как я не знаю форму данных, изменил это для обработки нескольких строк NSS в одной записи.