Можно попытаться включить yum
функция отката следующим образом:
vi /etc/yum.conf
tsflags=repackage
vi /etc/rpm/macros
(создайте если не существующий),%_repackage_all_erasures 1
Теперь можно использовать rpm
откатывать к различным точкам восстановления:
$ rpm -Uvh –rollback ’21:00′
$ rpm -Uvh –rollback ’3 hours ago’
$ rpm -Uvh –rollback ‘august 13′
$ rpm -Uvh –rollback ‘yesterday’
Все повторно упакованное программное обеспечение доступно здесь: /var/spool/repackage
.
Примечание: Можно только откатывать от точки, в которой Вы включили вышеупомянутое, Вы не можете откатывать до этого!
Я считаю, что это делает то, что вы хотите:
$ awk 'BEGIN{FS=",";OFS=","} $4 ~ /"RENT OUT"/ {NF--;printf $0; x=x%100;x++; printf ",\"REP%04i\"\n",x;next} 1' rentals.csv
"00:30:00","01:00:00","10/14/2014","RETURN","PASADENA","TX","12:30:00","sedan","","","corporate","CO01353"
"01:00:00","01:30:00","10/14/2014","RENT OUT","HOUSTON","TX","00:30:00","sedan","","","personal","REP0001"
Единственная часть, которая была изменена, это команда:
$4 ~ /"RENT OUT"/ {NF--;printf $0; x=x%100;x++; printf ",\"REP%04i\"\n",x;next}
Принимая каждую новую часть по одному:
NF--
Это удаляет (пустое) последнее поле из строки.
`printf $0
Это печатает строку (теперь без последнего поля).
x=x%100;x++
Это принимает счетчик x
по модулю 100, а затем увеличивает его на 1. Таким образом, счетчик будет циклически переходить от 1 к 100 и обратно к 1.
printf ",\"REP%04i\"\n "x
Это печатает наше новое последнее поле, которое включает в себя счетчик.
next
Поскольку мы уже распечатали эту строку, мы говорим awk
пропустить остальные команды и начать сначала со строки next
.
Другой (немного более уплотненной) версия с SPRINTF
:
awk 'BEGIN{FS=OFS=","} $4 ~ /"RENT OUT"/ {$12=sprintf("\"REP%04i\"",++i);i=i%100}1'