1

ファイルから1行ずつ抽出し、単語に分割しています。'<'と'>'で囲まれた単語を除くすべての単語が必要です。

        if($word =~ m/^(\<).*(\>)$/)
            {
                 print "Remove this word";
            }

上記のコードを試しましたが、機能しません。

これは私が処理しているファイルです:

#> main bcel_coverage.A    
#> <init> bcel_coverage.C
<# <init>
   ?? main
abc
<# main

<init>上記のファイルで印刷したくありません。それ以外のものは、「<」と「>」で囲むこともできます。

4

2 に答える 2

2
perl -ne '$_=~s/<[^>^<]*>//g; print' your_file

以下でテスト済み:

> cat temp
#> main bcel_coverage.A    
#> <init> bcel_coverage.C
<# <init>
   ?? main
abc
<# main
> perl -ne '$_=~s/<[^>^<]*>//g; print' temp
#> main bcel_coverage.A    
#>  bcel_coverage.C
<# 
   ?? main
abc
<# main
>
于 2012-10-03T10:54:53.713 に答える
1

で囲まれた単語に一致する正規表現で行を分割します<...>

% perl -e 'use Data::Dumper; $line = "ss<a>s<da>fg"; @words = split(/<[^>]+>/, $line); print Data::Dumper::Dumper( @words );'

$VAR1 = 'ss';
$VAR2 = 's';
$VAR3 = 'fg';

正規表現:

< :    Match starting <
[^>] : Anything that is not >
> :    Closing >
于 2012-10-03T10:18:02.853 に答える