私は2つの入力ファイルを持っています
ファイル 1 :
ABC:client1:project1
XYZ:client2-aa:project2
DEF:client4:proj
ファイル 2 :
client1:W-170:xx
client2-aa:WT-04:yy
client4:L-005A:zz
また、有効な値の配列は [W,WT] のようにハードコーディングできます。
出力:
ABC:W:project1
XYZ:WT:project2
SO 基本的に、file1 の column2 が file2 のいずれかのレコードの column1 と一致する場合、file1 のその coulmn2 を file2 の column2 の一部に置き換えます。この部分を取得するには、"-" 演算子を使用して file2 の column2 を分割し、結果を配列と照合して有効な値を決定する必要があります。
上記の基準に一致しないレコードは、出力に表示されません。
私はシェルスクリプトを初めて使用するので、助けていただければ幸いです。私は数日から試していて、使用して列全体を置き換えることができました
awk -F":" 'NR==FNR{A[$1]=$2;next}$2 in A{$2=A[$2]}1' OFS=":" file2 file1.
ただし、列の要件の一部を機能させることができませんでした。