Итерация fieldA в файле CSV, где fieldB имеет заданное значение

Можно попытаться включить yumфункция отката следующим образом:

  1. vi /etc/yum.conf
  2. добавьте эту строку к файлу: tsflags=repackage
  3. vi /etc/rpm/macros (создайте если не существующий),
  4. добавьте эту строку к файлу: %_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.

Примечание: Можно только откатывать от точки, в которой Вы включили вышеупомянутое, Вы не можете откатывать до этого!

Ссылки

3
20.04.2019, 18:24
2 ответа

Я считаю, что это делает то, что вы хотите:

$ 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.

3
27.01.2020, 21:19

Другой (немного более уплотненной) версия с SPRINTF :

awk 'BEGIN{FS=OFS=","} $4 ~ /"RENT OUT"/ {$12=sprintf("\"REP%04i\"",++i);i=i%100}1'
1
27.01.2020, 21:19

Теги

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