¿Qué es un comando de Unix para eliminar los primeros N caracteres de una línea?

Resuelto les2 asked hace 15 años • 7 respuestas

Por ejemplo, es posible que desee:

tail -f logfile | grep org.springframework | <command to remove first N characters>

Estaba pensando que trpodría tener la capacidad de hacer esto, pero no estoy seguro.

les2 avatar Jun 10 '09 02:06 les2
Aceptado

Usar cut. P.ej. para eliminar los primeros 4 caracteres de cada línea (es decir, comenzar en el quinto carácter):

tail -f logfile | grep org.springframework | cut -c 5-
iammichael avatar Jun 09 '2009 19:06 iammichael
sed 's/^.\{5\}//' logfile 

y reemplazas 5 por el número que deseas... debería funcionar...

EDITAR si para cada línea sed 's/^.\{5\}//g' logfile

LB40 avatar Jun 09 '2009 19:06 LB40

Puedes usar cut:

cut -c N- file.txt > new_file.txt

-c:caracteres

file.txt:fichero de entrada

new_file.txt:archivo de salida

N-:Caracteres desde N hasta el final para cortarlos y enviarlos al nuevo archivo.

También puede tener otros argumentos como: 'N', 'NM', '-M' que significa enésimo carácter, enésimo a mésimo carácter, primero a mésimo carácter respectivamente.

Esto realizará la operación en cada línea del archivo de entrada.

Ankur avatar Jul 06 '2015 08:07 Ankur
x=hello

echo ${x:1}

regresa ello

reemplace 1 con N según sea necesario

Mark avatar Mar 12 '2022 15:03 Mark
tail -f logfile | grep org.springframework | cut -c 900-

eliminaría los primeros 900 caracteres

cutusa 900- para mostrar el carácter 900 hasta el final de la línea

sin embargo, cuando canalizo todo esto a través de grep no obtengo nada

les2 avatar Jun 09 '2009 19:06 les2