Используйте join
и awk
вместе:
join -t $'\t' -j 1 -a 1 -a 2 -e 0 -o 0,1.2,0,2.2 file1 file2 | \
awk 'OFS="\t"{$5=$2-$4}NR==1{$5="Difference"}1'
Где:
-t
устанавливает разделитель ввода и вывода -j
определяет поле соединения в обоих файлах -a
принудительно объединяет для печати несопоставленных строк из обоих файлов -e
указывает, как заполнять пустые поля -o
выходной формат awk
сначала устанавливает разделитель выходных полей OFS
на вкладку $ 5
вычисляется из 2-го и 4-го diff -e
es feed (modificado )a ed
.
prueba
diff -e orig.sas new.sas > changes.txt
echo wq >> changes.txt
ed orig.sas < changes.txt
donde
wq
voluntad w rito y q uit, número de impresión de carácter escrito --silent
no dará salida por encima de la cuenta. consulte man ed
para obtener más información.
No veo el sentido de diferenciar para aplicar diferencias al archivo original, me parece que cp new.sas orig_v2.sas
sería suficiente
Supongo que tienes esto en mente :dos ramas alpha
N y bravo
N
diff -e alpha1.sas alpha2.sas > change12.txt
(cat change12.txt
echo w bravo2.sas
echo q ) | ed bravo.sas
esto informará sobre bravo
N cambios realizados en alpha
N