Я полагаю, вы имеете в виду что-то вроде:
's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g'
Полные команды sed + вывод:
$ echo "abcd," | sed 's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g'
efgh,
$ echo "abcd" | sed 's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g'
efgh
Согласен с @fox, но, кроме того, существует поведение, зависящее от платформы, и неопределенное поведение (GCC пытался определить их там, где это возможно ). Они могут различаться в зависимости от платформы, ОС и аппаратного обеспечения. Однако Gcc постарается сохранить согласованность (там, где это возможно ).
Примером различий может быть размер типов данных long int
и size_t
, который может быть 32-битным или 64-битным. (в других компиляторах они также могут быть 8-битными или 16-битными ).
Упомянутый вами сайт в настоящее время использует GCC 5, в то время как CentOS, кажется, использует по крайней мере GCC 7. Но именно поэтому у нас есть стандарты. Действительный код C99 будет прекрасно компилироваться на любой платформе.Он будет работать так же (, хотя, возможно, быстрее или медленнее ), если вы не делаете что-то вроде использования специфичных для платформы -библиотек или "неправильной" сериализации структур, не заботясь о порядке следования байтов (, если хост-архитектуры различаются)
tl;dr :для вещей, которые вы будете делать в школе, маловероятно, что различия будут значимыми