各ファイルに2つのファイルがあり、列が2つあります.file1の列2の最初の値と、file2の列2の各値を一致させる必要があります。その後、2つのファイルの列1を1つのファイルに結合する必要がありますが、2つの値が一致しない場合、2つの列は互いに隣接している必要があります。
ファイル1
344 0
465 1
729 2
777 3
676 4
862 5
ファイル2
766 0
937 1
980 2
237 3
736 5
例
422
208
251
各ファイルに2つのファイルがあり、列が2つあります.file1の列2の最初の値と、file2の列2の各値を一致させる必要があります。その後、2つのファイルの列1を1つのファイルに結合する必要がありますが、2つの値が一致しない場合、2つの列は互いに隣接している必要があります。
ファイル1
344 0
465 1
729 2
777 3
676 4
862 5
ファイル2
766 0
937 1
980 2
237 3
736 5
例
422
208
251
@glenn jackmanの答えを少し拡張するには...おそらくこれ:
join -j 2 file1 file2 | awk '{if ($3>$2) print $3-$2; else print $2-$3}'
列 2 に一致がある場合、2 つの列 1 の絶対差が出力されます。しかし、それはあなたの予想される出力と一致しません。これは、最初の値を除いて、質問に一致するように見える方法で入力と明確な関係を持っていないようです...
これが役立つかもしれません:
awk '
BEGIN { printf "%s\t%s\t%s\n","File1","File2","Difference(f2-f1)" }
NR==FNR { a[$2]=$1; next }
{ printf "%d\t%d\t%d\n",a[$2],$1,$1-a[$2] }' file1 file2
File1 File2 Difference(f2-f1)
344 766 422
465 937 472
729 980 251
777 237 -540
862 736 -126