s:$:__:
s:...:& :g
s: _*$::
Pruébalo en línea!
Se vuelve un poco complicado con respecto a la entrada de cadena vacía, ya que sed no tiene significado de un valor falso. Entonces, para lidiar con esto, le proporciono dos posibles interpretaciones de las reglas para validar mi presentación:
A. Usted esencialmente no proporciona nada como entrada, ni siquiera una nueva línea final (como es el caso con todos los ejemplos, incluido ese archivo de 6 Mb).
Uso:
echo -n ""|sed -f script
Salida: no se imprime nada, porque sed ni siquiera ejecuta el script sin entrada.
B. Uno podría considerar como valor falso para sed como una cadena única, es decir, devuelta solo cuando la entrada es una cadena vacía.
Uso:
echo ""|sed -f script
Salida:
__
Prefiero la primera interpretación mucho más, ya que creo que es la más cercana a la regla prevista, pero la última ayuda si ejecuta el script utilizando ese enlace TIO.