В этом случае вы можете использовать команду grep с поисковыми запросами Perl.
grep -oP '(?<=@TEST ).*(?=\" enabled=\"true\")' inputfile
Выражение «(? <=)» Отмечает точку, в которой совпадение начнется, а выражение «(? =)» - точку, в которой совпадение заканчивается.
". *" Указывает grep возвращать все, что находится между начальной и конечной точками.
При использовании тестового ввода строка выше возвращает 157 символов.
$ echo "Verify that the RADIUS accounting server should not send the Accounting-Response Message on Receiving the Accounting-Request Packet from the RADIUS Client" | wc -m
157
Если вы хотите дополнительно усечь это только до первых 50 символов, вы можете использовать cut
$ grep -oP '(?<=@TEST ).*(?=\" enabled=\"true\")' inputfile | cut -c1-50
Verify that the RADIUS accounting server should no
Если вы хотите сохранить результаты в файл, вам нужно перенаправить вывод в другой файл. Вы можете использовать что-то вроде следующего ...
$ grep -oP '(?<=@TEST ).*(?=\" enabled=\"true\")' inputfile | cut -c1-50 >> outputfile
Я лично не рекомендую перезапись входного файла, поскольку в какой-то момент вам может потребоваться использовать исходные данные.
Итак, если вам нужно сохранить все другие записи в файле и усечь только те строки, в которых enabled = "true", нам нужно изменить tools на awk.
$ awk -F'@TEST' '{if (/true/) print substr($3,2,50); else print $0}' inputfile >> outputfile
Эта единственная строка будет выводить без изменений каждую строку, которая не соответствует истине. Если совпадает значение true, строка будет усечена до 50 символов. Опять же, я не рекомендую перезаписывать исходные данные, чтобы результаты передавались в выходной файл.
Основываясь на последних изменениях, внесенных в вопрос OP, я изменил однострочную версию awk, чтобы воспроизвести вывод, предоставленный Beginner. В своем комментарии он упомянул, что awk не работает. Пока OP не предоставит более подробную информацию о том, почему awk не работает, при использовании awk 4.1.3 в Ubuntu 16.04 следующая строка будет возвращать результаты, которые он подробно описал до сих пор.
awk -F'@TEST' '{if (/true/) print "@TEST"$2,"@TEST",substr($3,2,50),"enabled=\"true\">"; else print $0}' inputfile >> outputfile