[英]How to combine awk and if in bash
我有2个文本文件,名为newport,面板端口如下所示。 我的awk命令根据它们的公共行将两个文件组合到port.txt。 我也想要在mypurpose中描述的新文件中不常见的行。 我无法组合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 #
你可以尝试一下吗?
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
我会做:
awk 'FNR==NR{a[$1]=$0;next} $1 in a{$0=a[$1]}1' newport panelport
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.