У меня есть файл, который выглядит так:
VAR1="one two three"
VAR2="four five six"
VAR3="seven eight nine"
Я пытаюсь найти команду, которая изменяет этот файл, вместо этого:
- Найтистрока, которая соответствует регулярному выражению
/^VAR2=".*?"/
- Закомментируйте это
- Добавить
#
и затем текущую дату (например, # 2019-02-04
) - Дублируйте строку, но добавьте
test
внутри строки и добавьте #
с сегодняшней датой к концу строки
Таким образом, конечный результат выглядит следующим образом:
VAR1="one two three"
# VAR2="four five six" # 2019-02-04
VAR2="four five six test" # 2019-02-04
VAR3="seven eight nine"
Я могу сделатьэто с этим sed
, и это работает, но я также хочу, чтобы он дал мне знать статус: да, он нашел строку и сделал запрос, или нет, он не нашел строку.
sed -i -r -e "s/^(VAR2=\".*?)(\")/# \1\2 # $(date +'%Y-%m-%d')\n\1 test\2 # $(date +'%Y-%m-%d')/" file
Еслиэто имеет значение, строка замены никогда не будет содержать регулярное выражение.
Я открыт для лучших способов сделать это.Целью является в основном редактирование файлов конфигурации и добавление символов в значения переменных, а также дублирование строки и комментария для целей резервного копирования.