cat file1
xizaoshuijiao @[email protected]
chifandaqiu @[email protected]
gongzuoyouxi @[email protected]
cat file2
@[email protected] @[email protected]
@[email protected] @[email protected]
@[email protected] @[email protected]
@[email protected] @[email protected]
@[email protected] @[email protected]
目的:file1の$ NFがfile2 $ 1に見つかった場合、file1の$ NFをfile2 $に置き換えます。それ以外は変更されません。awk-IF ...コマンドのELSE IFの問題
マイコード:
awk '\
NR==FNR{a[$1]=$1;b[$2]=$2;next}\
{if($NF in a)\
{$NF=b[FNR];print $0}\
else if!($NF in a)\
{print $0}\
}' file2 file1
そして、それはエラーが来た:
awk: cmd. line:5: else if!($NF in a)\
awk: cmd. line:5: ^syntax error
awk: cmd. line:6: {print $0}\
awk: cmd. line:6: ^syntax error
だからようです "!"問題。 file1のすべての内容を印刷したいので(変更された行と変更されていない行の両方)、どうすればいいですか?
あなたが あなたの質問の一番下にはなく、答えとして* *編集中のセクションを、これを追加する場合それは明確な/より簡潔であるかもしれないと同じである
{print}
に対応しています。 –それを入手してください。あなたの教えてくれてありがとう –