Подскажите пожалуйста как.
Или, если поизвращаться, можно соорудить построчное чтение файла, и выполнения одного из двух действий по условию: либо формирование и дописывание новой строки, либо просто перенос существующей (sed специально не трогаю).
#!/bin/bash
ModifyFile=''
while read line
do
if [[ $line == \[*\] ]]; then
ModifyFile=$ModifyFile"$line\n"
#получаем имя пользователя
nUname=${line/\[/}
nUname=${nUname/\]/}
#вставляем нашу строку
ModifyFile=$ModifyFile"username = $nUname\n"
else
ModifyFile=$ModifyFile"$line\n"
fi
done < /full/path/to/file/file.txt
echo -e "$ModifyFile"
Оговорки: 1. /full/path/to/file/file.txt - путь к Вашему файлу. 2. Если хотите изменения не вывести на экран, а напрямую в файл напечатать, то вместо
echo -e "$ModifyFile" в последней строчке следует написать
echo -e "$ModifyFile" > /full/path/to/my/output/file/file2.txt, при условии что папка /full/path/to/my/output/file/ существует и у текущего пользователя есть права на запись в нее.