В самом простом случае вы можете просто напечатать первое поле с достаточно большой шириной поля, например.
awk -F@ 'BEGIN{OFS=FS} {$1 = sprintf("%12s", $1)} 1' file
123@example.com
456789@example.net
01234@something-else.com
Насколько я знаю, любой метод, который не предполагает определенной максимальной ширины поля, потребует либо хранения файла в памяти, либо выполнения двух проходов.
Вход(file.txt
)
id="111"ABC
id="222"DEF
id="333""GHJ"
Команда и вывод
sed 's/.*[[:digit:]]"//' file.txt
ABC
DEF
"GHJ"