Comment ne conserver que les 300 premiers caractères de chaque ligne?

Je veux ne garder que les 300 premiers caractères de chaque ligne. La solution évidente:

sed -E 's/^(.{0,300}).*/\1/' 

dépasse apparemment certaines limites de regex internes:

 RE error: invalid repetition count(s) 

Certaines expérimentations montrent que le nombre de répétitions ne peut atteindre que 255, au moins sur ma plate-forme (MacOS). Python peut gérer {0,300}, mais je préférerais le faire avec des outils shell normaux, si possible. Des idées?

PS: Ouais, je sais, si je le faisais en Python, je ferais la ligne [: 300] et abandonnerais complètement la regex.

Ne pas erreur pour moi sur GNU sed , voir si la cut fonctionne pour vous

 $ perl -e 'print "a" x 350' | sed -E 's/^(.{0,300}).*/\1/' | wc -L 300 $ perl -e 'print "a" x 350' | cut -c1-300 | wc -L 300