Elimina il primo carattere noto in una stringa con sed


12

Come si cancella il primo carattere noto in una stringa con sed?

Ad esempio, supponiamo di voler eliminare il primo carattere (che è @) nella stringa "@ ABCDEFG1234"

Voglio che sed verifichi se "@" esiste come primo carattere. In tal caso, dovrebbe eliminare il carattere.

Risposte:


10

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

^ significa l'inizio della stringa

@ il tuo personaggio noto

(.*) il resto, catturato

quindi il blocco acquisito verrà sostituito in output Siamo spiacenti, al momento non è possibile verificarlo, ma dovrebbe essere qualcosa del genere


18

Non è necessario acquisire e sostituire.

sed 's/^@//'

Questo sostituisce il carattere @quando è il primo ^nella stringa, senza nulla. Quindi, eliminandolo.


0

Puoi farlo invece.

sed 's /^.//'

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

Esempio :

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

1
La domanda dice "Voglio sed per verificare se" @ "esiste come primo carattere. In tal caso, dovrebbe eliminare il personaggio. " La tua risposta cancella il primo carattere di ogni riga, non importa quale sia. Ad esempio, se una riga contiene test123, sembra che l'OP lo voglia lasciare solo.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.