2017-12-05 7 views
3
cat file 

^QciProfilePredefined=qci2$ logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2 
EUtranCellTDD=.*-1[123456],UeMeasControl=1,ReportConfigA4=1$ a4ThresholdRsrp -140 

$ 1の最後のカンマの前のコンテンツを削除するには、gensub()を使用します(カンマを削除する)。awk gensub関数の使用に関する問題

私のコード:

awk '{$1=gensub(/.*,/,"",1);print}' file 

出力:

LogicalChannelGroup=2 logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2 
ReportConfigA4=1$ a4ThresholdRsrp -140 a4ThresholdRsrp -140 

ROW 2コンテンツが "4ThresholdRsrp -140" で繰り返しているようです。

出力は私が予想:

LogicalChannelGroup=2 logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2 
ReportConfigA4=1$ a4ThresholdRsrp -140 

答えて

5

gensubあなたは、デフォルトで$0あるターゲットを言及するのを忘れてしまった4つの引数

gensub(regexp, replacement, how [, target])を持っていますが、$1

how引数を指定するために使用される必要があります例:第2試合または第4試合(sed 's///3'など)、またを受け入れる

awk '{$1=gensub(/.*,/,"",1,$1);print}' 


すべての一致を指定するために3210または"G"あなたはsubが見つかった最初の試合のためにインプレースの置換を行いますが、ここでgensubを必要としません。 gsubは、見つかったすべての一致に対してインプレース置換を行います

awk '{sub(/.*,/,"",$1);print}' 
関連する問題