0

プレフィックスA_B_の文字列を含むテキストファイルがあります。

例:A_B_Monday

*がである場合A_B_*を除いて、のすべての出現箇所をに置き換えたいと思います。X_Y_*C

A_B_*したがって、そうではないがそうではないすべての文字列は、A_B_Cで置き換える必要がありますX_Y_*

これはperlでどのように行う必要がありますか?

編集:1上記の*は文字列です。したがって、A_B_GenevaではないすべてのA_B_ *は、X_Y_NewYorkに置き換える必要があります。perl -pi.bak -e's / ^ A_B _(!Geneva)/ X_Y_ / g;' File.Txtが機能していないようです。私はStrawberryPerlを使用しています。

更新:これは私のために働いたperl -i.bak -pE "s / A_B _(?! Geneva)/ USB_EP_ / g" File.Txt

4

3 に答える 3

3

多分:</ p>

s/^A_B_(?!C)/X_Y_/;

また:

s/^A_B_(?!C)/X_Y_/i;
于 2012-08-03T05:25:52.957 に答える
3
s/^A_B_(?!Type\z)/X_Y_/;

がなければ、本来の\zようA_B_Typedに変更さX_Y_Typedれません。

次のように使用できます。

perl -pi.bak -pe"s/^A_B_(?!Type\z)/X_Y_/g" file
于 2012-08-03T05:42:57.027 に答える
1
$line =~ s/^A_B_([^C])/X_Y_$1/;

ファイルの各行に対してこれを行う必要があります。

于 2012-08-03T05:25:51.090 に答える