grepを使用して、次で始まるすべてのテキストをハイライトすることは可能ですか?
mutablePath = CGPathCreateMutable();
で終わる:
CGPathAddPath(skinMutablePath, NULL, mutablePath);
これらの2つのフレーズの間に任意の量のテキストがありますか?
注:BBEditを使用しているため、grepを使用する必要があります。
使用する必要がありますGNU grep
:
grep -oPz 'mutablePath = CGPathCreateMutable\(\);.*?(\n.*?)*.*?CGPathAddPath\(skinMutablePath, NULL, mutablePath\);' file
がない場合は、同じことを達成するためにGNU grep
使用できます。pcregrep
pcregrep -M 'mutablePath = CGPathCreateMutable\(\);.*(\n|.)*CGPathAddPath\(skinMutablePath, NULL, mutablePath\);' file
代わりに、次のようにsedを使用できます。
sed -n '/mutablePath = CGPathCreateMutable();/,/CGPathAddPath(skinMutablePath, NULL, mutablePath);/p' infile
編集:
-P
brepでgrepのフラグがサポートされているかどうかわからない。もしそうなら、あなたはこれを使うことができます:
grep -oP 'mutablePath = CGPathCreateMutable();\X*CGPathAddPath(skinMutablePath, NULL, mutablePath);/' infile
grepのmanページによると:
-P、-perl-regexpPATTERNをPerl正規表現として解釈します。
これらの間およびこれらを含む行を印刷する場合は、次を使用できます。
perl -ne '/start line/ .. /end line/ and print'