Quiero obtener una lista de líneas en un archivo por lotes que tienen más de 120 caracteres de longitud. Para esto, pensé en usar sed. Lo intenté pero no tuve éxito. Cómo puedo conseguir esto ? ¿Hay alguna otra manera de obtener una lista que no sea el uso de sed? Gracias ..Encontrar líneas que tienen más de 120 caracteres de longitud usando sed
Respuesta
Otra manera de hacer esto usando awk:
cat file | awk 'length($0) > 120'
Puede utilizar grep
cuantificador y su repetición:
grep '.\{120\}' script.sh
+1. Bleh, unos segundos más rápido. –
'grep' es al menos 10 veces más rápido en archivos grandes (10 Gb). – FeedTheWeb
usando sed, tiene algunas alternativas:
sed -e '/.\{120\}/!d'
sed -e '/^.\{,119\}$/d'
sed -ne '/.\{120\}/p'
La primera opción coincide con las líneas que no tienen (al menos) 1 20 caracteres (!
después de que la expresión ejecute el comando en las líneas que no coinciden con), y los elimina (es decir. no los imprime).
La segunda opción coincide con las líneas que desde el inicio (^
) hasta el final ($
) tienen un total de caracteres de cero a 119. Estas líneas también se eliminan.
La tercera opción es usar el indicador -n
, que le dice a sed que no imprima líneas de manera predeterminada, y solo imprime algo si se lo indicamos. En este caso, unimos líneas que tienen (al menos) 120 caracteres y usamos p
para imprimirlas.
La pregunta nombra 'sed' específicamente. Aunque aprecio todas las demás respuestas, esta es la única que funciona cuando sed es todo lo que tienes. – Leo
- 1. Líneas de numeración que coinciden con el patrón usando sed
- 2. usando sed para copiar líneas y eliminar caracteres de los duplicados
- 3. Más de 120 contadores en hadoop
- 4. sed + eliminar "#" y líneas vacías con un comando sed
- 5. Sed Insertar Líneas Múltiples
- 6. caracteres especiales en sed
- 7. Reemplazar una palabra con varias líneas usando sed?
- 8. seleccionar varias líneas usando el comando linux sed
- 9. sed borrar líneas que no contienen una cadena específica
- 10. sed - unir un rango de líneas seleccionadas
- 11. ¿Cómo reemplazar líneas nuevas con caracteres de pestaña?
- 12. Cómo crear una copia de un archivo que tiene una longitud de más de 260 caracteres
- 13. La forma más rápida de actualizar 120 millones de registros
- 14. Have sed ignore las líneas que no coinciden
- 15. sed: unir líneas dependiendo del segundo
- 16. ¿Cómo encontrar líneas que contengan más de un solo espacio en blanco entre cadenas en Unix?
- 17. C# string tienen un límite de longitud
- 18. Usando sed, ¿cómo imprimes los primeros 'N' caracteres de una línea?
- 19. ¿Cómo hacer que este script sed sea más rápido?
- 20. sed - cómo hacer grupos regex usando sed
- 21. CSS, Javascript e imágenes tienen longitud cero
- 22. ¿Cómo contar el número de líneas no vacías en un archivo usando sed?
- 23. grep como comando para encontrar líneas coincidentes más líneas de vecindad
- 24. ¿Qué es Scala para encontrar si todos los elementos de una matriz tienen la misma longitud?
- 25. optimización sed (modificación de archivos grandes basada en un conjunto de datos más pequeño)
- 26. Skip/eliminar caracteres no ASCII con sed
- 27. ¿Todos los caracteres kanji en UTF-8 tienen 3 bytes de longitud?
- 28. Separar el comando 'sed' sobre múltiples líneas
- 29. Encontrar métodos que tienen atributo personalizado que utilizan la reflexión
- 30. Usando? con sed
Gracias. Funcionó. ¿Cómo puedo obtener el número de línea? – Sravan
¿Alguna razón para usar 'cat'? – choroba
awk 'length ($ 0)> 120 {print NR ":" $ 0}' – piokuc