Чтобы использовать одинарные кавычки и вставить имя переменной, сделайте следующее:
sed 's/ '"$username"'//' file1.txt
Это не очень красиво, но когда-нибудь может пригодиться. Независимо от прямого использования одинарных или двойных кавычек, в коде есть скрытая основная проблема. Если переменная содержит «/», sed будет рассматривать ее как часть команды «s», что означает, что будет 4 косых черты, и вы получите синтаксическую ошибку, например:
sed: bla bla bla: unknown option to `s' #good luck debugging that :)
Чтобы справиться с этим, я обычно выбираю другой символ-разделитель синтаксиса, который, как я знаю, вряд ли появится в моей переменной. Например, новая команда станет:
sed 's# '"$username"'##' file1.txt