Почему --backup подразумевает алгоритм дельта-передачи, который, в свою очередь, подразумевает -u?

Здесь в файле tabbed.input (без пробелов, все последовательные пробелы - одна табуляция):

abc     bd      c       2000;2000       d       2;00;2;01
e       05/19/2016;05/19/2016   foo;foo f       g

следующий Python program:

def cleaned(f):
    length = len(f)
    if (length % 2) == 0:
        return f  # even number of characters in field, middle one never ';'
    half_way = length // 2
    if f[half_way] != ';':
        return f
    before, after = f[:half_way], f[half_way+1:]
    if before == after:
        return before
    return f

with open('tabbed.input') as fp:
    for line in fp:
        fields = line[:-1].split('\t')
        cleaned_fields = [cleaned(f) for f in fields]
        print('\t'.join(cleaned_fields))

ваш результат будет следующим:

012345670123456701234567012345670123456701234567
abc     bd      c       2000    d       2;00;2;01
e       05/19/2016      foo     f       g

Путем проверки на четное количество символов и наличия '; ' в середине поля это будет работать, даже если дублированные данные содержат ' ; '

1
13.04.2017, 15:36
1 ответ

Использование параметра --backup включает алгоритм дельта-передачи, поэтому использование параметра -u не требуется.

Неправильно! https: // xkcd.com / 386 / (кто-то ошибается в Интернете).

Как мы можем понять, что --backup подразумевает алгоритм дельта-передачи?

Это не так. По умолчанию используется алгоритм дельта-передачи.

Итак, как включение алгоритма дельта-передачи подразумевает -u?

Нет.

3
29.04.2021, 00:05

Теги

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