Использование вывода diff -e с sed

Используйте 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-е поле $ 5 вычисляется из 2-го и 4-го
  • и если это первая строка в файле, отформатируйте 5-е поле как заголовок
1
20.04.2019, 11:09
1 ответ
Se supone que el resultado de

diff -ees feed (modificado )a ed.

prueba

diff -e orig.sas new.sas > changes.txt
echo wq >> changes.txt

ed orig.sas < changes.txt

donde

  • wqvoluntad w rito y q uit, número de impresión de carácter escrito
  • opcional --silentno dará salida por encima de la cuenta.

consulte man edpara obtener más información.

editar

No veo el sentido de diferenciar para aplicar diferencias al archivo original, me parece que cp new.sas orig_v2.sassería suficiente

Supongo que tienes esto en mente :dos ramas alphaN y bravoN

diff -e alpha1.sas alpha2.sas > change12.txt

(cat change12.txt
 echo w bravo2.sas
 echo q ) | ed bravo.sas

esto informará sobre bravoN cambios realizados en alphaN

2
27.01.2020, 23:32

Теги

Похожие вопросы