1

複数の行で区切られたパターンを持つファイルが{}あり、特定のシンタックスを持つ 2 つの行を見つけたいのですが、ソース ファイルで次のような行が表示されることがあります。

{ some text size =
          0 }

また

{ some text size
         = 0 }

その他の場合

{some text size = 0 }

ソースファイルをフィルタリングし、分離条件に一致する行を結合して 1 行に変換したい!

4

2 に答える 2

0

Perl ソリューション:

  • シンプルなコマンドライン:

    perl -pe 'local $/; s/({.*size *(?:= *)?)\n/$1/g;' infile >outfile
    
  • 脚本:

    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    
    $filename = "/path/to/file"
    
    open FILE, "<$filename" or die $!;
    local $/;
    my $txt = <FILE>;
    close FILE;
    
    $txt =~ s/({.*size) *(?:= *\n|\n *=) *(0 *})/$1 = $2/g;
    
    open FILE, ">$filename" or die $!;
    print FILE $txt;
    close FILE;
    
于 2013-07-01T11:43:26.223 に答える