Здесь в файле 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
Путем проверки на четное количество символов и наличия ';
' в середине поля это будет работать, даже если дублированные данные содержат ' ;
'
Использование параметра --backup включает алгоритм дельта-передачи, поэтому использование параметра -u не требуется.
Неправильно! https: // xkcd.com / 386 / (кто-то ошибается в Интернете).
Как мы можем понять, что --backup подразумевает алгоритм дельта-передачи?
Это не так. По умолчанию используется алгоритм дельта-передачи.
Итак, как включение алгоритма дельта-передачи подразумевает -u?
Нет.