мало места для хранения, как мне его увеличить?

Проблема возникает при обновлении файлов конфигурации. Например, вы можете сделать это как функции сценария оболочки:

#!/bin/sh
add_data() {
    grep "^$2$" "$1" >/dev/null 2>/dev/null || echo "$2" >>"$1"
}

add_data program.conf "Line 1"
add_data program.conf "Line 2"

В этом примере я привязал выражение так, чтобы совпадали только строки, не содержащие лишнего текста. Но предполагается, что в данных нет метасимволов. Этот вызов не будет добавлять буквальный текст:

add_data program.conf ".*Line 2$"

Вы можете обойти это, экранировав символы, которые могут вызвать проблемы с grep.

Комментаторы отмечают, что можно обойти эту проблему, используя параметр POSIX -x :

Учитывать только строки ввода, в которых используются все символы в строка, исключающая завершение, чтобы соответствовать всей фиксированной строке или регулярному выражению, чтобы соответствовать строкам.

со следующим результатом:

#!/bin/sh
add_data() {
    grep -F -x "$2" "$1" >/dev/null 2>/dev/null || echo "$2" >>"$1"
}

add_data program.conf "Line 1"
add_data program.conf "Line 2"
add_data program.conf ".*Line 2$"

3
01.02.2016, 10:49
0 ответов

Теги

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