Necesito eliminar el texto de una línea antes del delimitador.
Por ejemplo:
(123434): hello::{apple,orange,mango}.
Necesito eliminar el texto antes de primero :. es decir (123434).
¿Hay algún comando en Linux para realizar esta tarea?
command-line
text-processing
usuario80538
fuente
fuente

sedoawkRespuestas:
Este
sedcomando debería hacer el truco. El siguiente comando sobrescribirá el archivo:Para imprimir el resultado, elimine la
-ibandera. Para poner la salida en un nuevo archivo, elimine la-ibandera y redirija la salida:fuente
Puedes usar
cut:fuente
Puede hacer esto con una instrucción Bash bastante simple :
mytext="(123434): hello::{apple,orange,mango}."echo ${mytext#*)}Esto se imprimirá
: hello::{apple,orange,mango}.. Puede cortar prefijos y sufijos de manera similar. Además, las definiciones de prefijo y sufijo pueden contener comodines.Prefijo de corte: hasta la primera coincidencia de comodín de prefijo:
${variable#prefix}Prefijo de corte: hasta la última coincidencia de comodín de prefijo:
${variable##prefix}Cortar sufijo: hasta la primera coincidencia de comodín con sufijo:
${variable%suffix}Cortar sufijo - hasta la última coincidencia de comodín sufijo:
${variable%%suffix}Puede parecer poco claro a primera vista, vea el siguiente ejemplo:
En el último ejemplo, el patrón no coincide, por lo que no se corta nada.
fuente
echo ${mytext#*:}:. Esto manejará correctamente líneas como(123)(434): hello::{apple,orange,mango}.y123434: hello::{apple,orange,mango}.