No, è più efficiente di quello che otterrai. Potresti scrivere un programma C che potrebbe fare il lavoro un po 'più veloce (meno tempo di avvio e argomenti di elaborazione) ma probabilmente tenderà alla stessa velocità di sed man mano che i file diventano grandi (e presumo siano grandi se impiega un minuto ).
Ma la tua domanda soffre dello stesso problema di tanti altri in quanto presuppone la soluzione. Se dovessi dirci in dettaglio cosa stai cercando di fare piuttosto che come , potremmo essere in grado di suggerire un'opzione migliore.
Ad esempio, se si tratta di un file A che viene elaborato da un altro programma B, una soluzione sarebbe quella di non eliminare la prima riga, ma modificare il programma B per elaborarlo in modo diverso.
Supponiamo che tutti i programmi aggiunti a questo file A e che il programma B attualmente legga ed elabori la prima riga prima di eliminarlo.
È possibile riprogettare il programma B in modo che non provi a eliminare la prima riga ma mantiene un offset persistente (probabilmente basato su file) nel file A in modo che, alla successiva esecuzione, possa cercare tale offset, elaborare la linea lì e aggiorna l'offset.
Quindi, in un momento di quiete (mezzanotte?), Potrebbe eseguire un'elaborazione speciale del file A per eliminare tutte le linee attualmente elaborate e riportare l'offset a 0.
Sarà certamente più veloce per un programma aprire e cercare un file piuttosto che aprirlo e riscriverlo. Questa discussione presuppone che tu abbia il controllo sul programma B, ovviamente. Non so se sia così, ma potrebbero esserci altre soluzioni se fornisci ulteriori informazioni.