Jak użyć sed do zastąpienia tylko pierwszego wystąpienia w pliku?

Chciałbym zaktualizować dużą liczbę plików źródłowych C ++ za pomocą dodatkowej dyrektywy include przed istniejącymi #includes. Do tego rodzaju zadań zwykle używam małego skryptu basha z sedem, aby ponownie napisać plik.

Jak mogę uzyskaćsed zastąpić tylko pierwsze wystąpienie ciągu w pliku, zamiast zastępować każde wystąpienie?

Jeśli używam

sed s/#include/#include "newfile.h"\n#include/

zastępuje wszystkie # zawiera.

Mile widziane są również alternatywne propozycje osiągnięcia tego samego.

questionAnswers(20)

yourAnswerToTheQuestion