次の 2 つのファイルがあります。 file2 はタブで区切られます。
ファイル1
A
B
E
ファイル2
ID value
A 1
B 2
C 3
D 4
E 5
F 6
GA 7
HB 10
I 11
file1にIDがある場合は、次のように2番目の列の値を0に変更したいと思います。
ID value
A 0
B 0
C 3
D 4
E 0
F 6
GA 7
HB 10
I 11
本当に愚かなコードを書いた
for i in `cat file1`;do sed -i 's/\<'"$i"'\>/'"$i"'\t0/g' file2;done
less -S file2 | awk '{print $1,"\t",$2}' | sed 's/ //g' > finalfile
流暢なコードはawkのように置き換えることができますか?ありがとうございます。
答え1
すべてのことを一緒にしてくださいawk
。
awk -v OFS='\t' '
NR==FNR{ Ids[$1]; next }
{ print $1, ($1 in Ids?0:$2) }
' file1 file2