Jak usunąć pierwszy znany znak w ciągu z sed?
Powiedzmy na przykład, że chcę usunąć pierwszy znak (którym jest @) w ciągu „@ ABCDEFG1234”
Chcę, aby sed sprawdził, czy „@” istnieje jako pierwszy znak. Jeśli tak, powinien usunąć znak.
sed 's/^@\(.*\)/\1/'
^
oznacza początek ciągu
@
twój znany char
(.*)
reszta schwytana
wtedy przechwycony blok zostanie zastąpiony wyjściem Niestety nie można go w tej chwili przetestować, ale powinno być coś takiego
Nie ma potrzeby przechwytywania i zastępowania.
sed 's/^@//'
Zastępuje to znak, @
gdy jest pierwszy ^
w ciągu, bez niczego. Tak więc, usuwając to.
Możesz to zrobić zamiast tego.
sed 's /^.//'
^ - Starting character
. - No of charactes(.. means two characters)
Przykład:
echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123
test123
, wygląda na to, że OP chce pozostawić go w spokoju.