Я считаю, что эта команда отлично работает:
awk -v "/mallory:/,/end-config/ {next} 1" /filename.txt
В файле все выглядит так:
alice:
config option 1
config option 2
end-config
mallory: <--- Line gets deleted
config option 1 <--- Line gets deleted
config option 2 <--- Line gets deleted
end-config <--- Line gets deleted
bob:
config option 1
config option 2
end-config
и удаляет только блок конфигурации для mallory.
Итак, теперь я хотел определить это в скрипте bash, чтобы имя пользователя могло быть переменной bash. Я сделал это:
#!/bin/bash
username="mallory"
awk -v username="$username" "/username:/,/end-config/ {next} 1" /file.txt
Угадай что. Это ничего не удаляет. Вывод соответствует файлу, с которого я начал. Что дает? Я правильно импортировал свою переменную, верно?