Encontré una pregunta sobre cómo eliminar líneas más largas que 2048 caracteres:
¿Cómo eliminar la línea si es más larga que XY?
P: ¿Pero cómo puedo eliminar líneas más cortas que 4 caracteres? Entonces, elimine las líneas que tienen 1 o 2 o 3 de longitud en un archivo.
ACTUALIZACIÓN: Gracias por las muchas BUENAS respuestas, pero solo puedo marcar una como OK
text-processing
sed
evachristina
fuente
fuente

sed '/^.\{,3\}$/d'no funciona con BSD sed:sed: 1: "/^.\{,3\}$/d": RE error: invalid repetition count(s). La versión sed -r es sintácticamente válida, pero no eliminará líneas.Algunas variaciones más:
o
o
o
o
o GNU awk:
fuente
Aquí está la solución de Vim usando el modo Ex de Vim y el
globalcomando.Esto es muy similar al uso
sed, solo que algunos caracteres especiales ('{', '}') deben escaparse.Usando el modo Very Magic Regex de Vim (\ v), se puede evitar este escape.
Ver también: ayuda mágica
También a veces es útil hacer lo contrario con
vglobal.eliminaría todo menos las líneas hasta 3 caracteres.
fuente
para eliminar directamente las líneas que podrías:
O BRE:
Si una línea no contiene 4 o más caracteres, se elimina.
Hacer lo anterior en la subshell de sustitución de comandos asegurará que se
grepobtenga un descriptor de lectura antes de que cat comience a escribir en él, pero<<HEREDOCtambién se asegurará de que el resultado permanezca transmitido y no cause errores de longitud de argumento.fuente
fuente
Puedes usar
grep:Si cuenta espacios iniciales en la longitud de la línea:
Si no cuenta los espacios iniciales en la longitud de línea:
fuente