linux - test - grep caracteres limitados-una línea
uso avanzado de grep (3)
Podrías usar una combinación de grep y corte.
Usando tu ejemplo yo usaría:
grep -sRn ''wp-content'' .|cut -c -40
grep -sRn ''wp-content'' .|cut -c -80
Eso te daría los primeros 40 u 80 caracteres respectivamente.
editar:
Además, hay una bandera en grep, que puedes usar:
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
Esto con una combinación de lo que escribí anteriormente:
grep -sRnm 1 ''wp-content'' .|cut -c -40
grep -sRnm 1 ''wp-content'' .|cut -c -80
Eso debería darle la primera vez que aparece por archivo, y solo los primeros 40 u 80 caracteres.
Quiero buscar una palabra en varios archivos y devolver solo una línea por resultado, o un número limitado de caracteres (40 ~ 80 caracteres, por ejemplo), y no toda la línea, como por defecto.
grep -sR ''wp-content'' .
file_1.sql:3309:blog/wp-content
file_1.sql:3509:blog/wp-content
file_2.sql:309:blog/wp-content
Actualmente veo lo siguiente:
grep -sR ''wp-content'' .
file_1.sql:3309:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without visionary systems. Continually redefine prospective deliverables without.
file_1.sql:3509:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without visionary systems. Continually redefine prospective deliverables without.
file_2.sql:309:blog/wp-content-Progressively predominate impactful systems without resource-leveling best practices. Uniquely maximize virtual channels and inexpensive results. Uniquely procrastinate multifunctional leadership skills without visionary systems. Continually redefine prospective deliverables without.
Si cambia la expresión regular a ''^.*wp-content''
puede usar egrep -o
. Por ejemplo,
egrep -sRo ''^.*wp-content'' .
La bandera -o
hace que egrep solo imprima la parte de la línea que coincide. Por lo tanto, hacer coincidir desde el inicio de la línea hasta wp-content
debería producir la salida de muestra en su primer bloque de código.
egrep -Rso ''.{0,40}wp-content.{0,40}'' *.sh
Esto no llamará a la Orquesta de la Sinfonía de Radio, sino a -o (solo coincidencia).
Un máximo de 40 caracteres antes y detrás de tu patrón. Nota: * e * grep.