[英]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.