shell 实例一
cat file1
xi=zaoshui jiao=@E0488_5@
chi=fan da qiu=@E0488_3@
gong=zuo you xi @E0977_5@
cat file2
@E0488_3@ @E21562_3@
@E0488_5@ @E21562_5@
@E0977_3@ @E21630_3@
@E0977_5@ @E21630_5@
@E0977_6@ @E21631_1@
Purpose: if $NF in file1 found in file2 $1, than replace $NF in file1 with file2 $2.otherwise, makes no change.
Expected Output:
xi=zaoshui jiao=@E21562_5@
chi=fan da qiu=@E21562_3@
gong=zuo you xi @E21630_5@
Code:
awk 'NR==[FNR]{a[$1]=[$2];next}($NF in a){sub($NF,a[$NF])}1' file2 FS='[ =]' file1
shell 实例二
cat file
^QciProfilePredefined=qci2$ logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2
Control=1,ReportConfigA4=1$ a4ThresholdRsrp -140
Purpose:
Use gensub()
to delete the content before the last comma in $1(also delete the comma),without make influence other column which contains comma.
Expected output:
LogicalChannelGroup=2 logicalChannelGroupRef QciTable=default,LogicalChannelGroup=2
ReportConfigA4=1$ a4ThresholdRsrp -140
Code:
awk '{sub(/.*,/,"",$1);print}'
or
awk '{$1=gensub(/.*,/,"",1,$1);print}' file