Использование MYSQLDUMP для автоматического резервного копирования сервера БД

С sed:

sed -e "/^.\./s/^/0/" file.txt 

Шаблон /^.\./ ищет любой символ и буквальную точку в начале строки ^ , и если это совпадает, s ub заменить начало строки нулем, фактически добавляя ноль к началу.

Выражение sed s /. \ {0 \} / 0 / несколько странно, оно соответствует нулю или более копий чего-либо и заменяется нулем. Шаблон, конечно, будет соответствовать в каждой позиции строки, но поскольку s /// заменяет только первое совпадение, он работает так, как вы предполагали. Тем не менее, странный способ сделать это.


Или с awk аналогичное регулярное выражение будет работать для сопоставления строки, но мы можем использовать substr :

awk 'substr($0, 2, 1) == "." {$0 = "0" $0} 1' file.txt 

Сначала мы проверяем, является ли второй символ точкой, а затем добавляем ноль вперед строки, если так. Последний вызывает действие по умолчанию - печать строки после любых изменений.

1
25.06.2017, 02:48
1 ответ

Удалите пробел между +и спецификацией формата при вызове date:

.
date +'\%d-\%m-\%y'

Когда вы ставите пробел после +, dateполучает два аргумента +и '\%d-\%m-\%y'.

Поскольку вы используете GNU date, который не ожидает каких-либо других аргументов командной строки после спецификации формата, вы получаете сообщение об ошибке «дополнительный операнд» для строки '\%d-\%m-\%y'.

0
28.01.2020, 00:53

Теги

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