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