Eliminar el primer carácter conocido en una cadena con sed


12

¿Cómo se elimina el primer carácter conocido en una cadena con sed?

Por ejemplo, supongamos que quiero eliminar el primer carácter (que es @) en la cadena "@ ABCDEFG1234"

Quiero que sed verifique si "@" existe como primer carácter. Si es así, debería eliminar el carácter.

Respuestas:


10

sed 's/^@\(.*\)/\1/'

^ significa comienzo de la cadena

@ tu char conocido

(.*) el resto capturado

luego el bloque capturado se sustituirá a la salida Lo sentimos, no puedo probarlo en este momento, pero debería ser algo así


18

No hay necesidad de capturar y reemplazar.

sed 's/^@//'

Esto reemplaza al personaje @cuando está primero ^en la cadena, sin nada. Por lo tanto, eliminándolo.


0

Puedes hacer esto en su lugar.

sed 's /^.//'

^ - Starting character 
. - No of charactes(.. means two characters)

Ejemplo:

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123

1
La pregunta dice "Quiero sed para verificar si" @ "existe como primer carácter. Si es así, debería eliminar el carácter ". Su respuesta elimina el primer carácter de cada línea, sin importar cuál sea. Por ejemplo, si una línea contiene test123, parece que el OP quiere que se quede sola.
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.