hua*_*eng 3 bash shell awk sed
cat file
^QciProfilePredefined=qci2$ logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2
EUtranCellTDD=.*-1[123456],UeMeasControl=1,ReportConfigA4=1$ a4ThresholdRsrp -140
Run Code Online (Sandbox Code Playgroud)
我想使用gensub()删除$ 1中最后一个逗号之前的内容(也删除逗号),而不影响其他包含逗号的列.
我的代码:
awk '{$1=gensub(/.*,/,"",1);print}' file
Run Code Online (Sandbox Code Playgroud)
输出:
LogicalChannelGroup=2 logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2
ReportConfigA4=1$ a4ThresholdRsrp -140 a4ThresholdRsrp -140
Run Code Online (Sandbox Code Playgroud)
似乎ROW 2内容重复了"4ThresholdRsrp -140".
我预期的输出:
LogicalChannelGroup=2 logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2
ReportConfigA4=1$ a4ThresholdRsrp -140
Run Code Online (Sandbox Code Playgroud)
gensub 有4个参数 gensub(regexp, replacement, how [, target])
你忘了提到目标,默认是$0你需要的$1
how参数用于指定要替换的匹配项,例如:第二次匹配或第四次匹配(如sed 's///3'),并且还接受"g"或"G"指定所有匹配项
awk '{$1=gensub(/.*,/,"",1,$1);print}'
Run Code Online (Sandbox Code Playgroud)
你不需要gensub在这里,sub将为找到的第一场比赛进行原地替换.gsub将对找到的所有匹配进行原位替换
awk '{sub(/.*,/,"",$1);print}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |