我有2个文本文件,分别为newport和panel port,如下所示。我的awk命令根据两个文件的共同行将两个文件合并到port.txt。我也希望在我的目的中描述的新文件中不要使用普通行。我无法结合使用awk和if或另一个| awk命令。
awk -F' ' 'FNR==NR{a[$1]=$2; next} {print $1,a[$1]}' newport.txt panelport.txt > port.txt
新港
LTECD11L 444
panelport
ENODEB1513L #
ENODEB1521L #
ENODEB1522L #
ENODEB1532L #
ENODEB1533L #
LTECD11L #
LTECD12L #
LTECD14L #
L650112L #
LTEG211L_1 #
LTEG212L_1 #
NodeB1213L #
NodeB1214L #
ENODEB1612L #
ENODEB1614L #
ENODEB1617L #
NodeB1113L #
NodeB1114L #
BB663011L #
BB663012L #
端口
ENODEB1513L
ENODEB1521L
ENODEB1522L
ENODEB1532L
ENODEB1533L
LTECD11L 444
LTECD12L
LTECD14L
L650112L
LTEG211L_1
LTEG212L_1
NodeB1213L
NodeB1214L
ENODEB1612L
ENODEB1614L
ENODEB1617L
NodeB1113L
NodeB1114L
BB663011L
BB663012L
我的目的
ENODEB1513L #
ENODEB1521L #
ENODEB1522L #
ENODEB1532L #
ENODEB1533L #
LTECD11L 444
LTECD12L #
LTECD14L #
L650112L #
LTEG211L_1 #
LTEG212L_1 #
NodeB1213L #
NodeB1214L #
ENODEB1612L #
ENODEB1614L #
ENODEB1617L #
NodeB1113L #
NodeB1114L #
BB663011L #
BB663012L #
答案 0 :(得分:2)
请您尝试以下。
awk 'FNR==NR{a[$1]=$0;next} {$0=($1 in a?a[$1]:$1" #")} 1' newport panelport
如果您不希望输出#
,那么以下操作可能会有所帮助。
awk 'FNR==NR{a[$1]=$0;next} {$0=($1 in a?a[$1]:$1)} 1' newport panelport
答案 1 :(得分:2)
我会做的:
awk 'FNR==NR{a[$1]=$0;next} $1 in a{$0=a[$1]}1' newport panelport