Bash entfernt erste und letzte Zeichen aus einer Zeichenkette
Ich habe eine solche Schnur:
|abcdefg|
Und ich möchte eine neue Zeichenkette erhalten, die in irgendeiner Weise (wie string2) mit der ursprünglichen Zeichenkette ohne die beiden |
-Zeichen am Anfang und am Ende der Zeichenkette aufgerufen wird, so dass ich Folgendes erhalte:
abcdefg
Ist das in der Bash möglich?
101
3
Das können Sie tun
Oder, wenn die Länge der Zeichenkette konstant ist, können Sie
Außerdem sollte dies funktionieren
Auch dies
Hier ist eine Lösung, die unabhängig von der Länge der Zeichenkette ist (bash):
Sie können auch sed verwenden, um das | zu entfernen, indem Sie nicht nur auf das Symbol selbst verweisen, sondern Positionsreferenzen wie in verwenden:
Wobei ':' die Begrenzungszeichen sind (Sie können sie durch / oder ein beliebiges Zeichen, das nicht in der Abfrage vorkommt, ersetzen, ein beliebiges Zeichen nach dem s tut es auch). Hier bedeutet ^ (Caret) den Anfang der Eingabezeichenfolge und $ (Dollar) das Ende. Der . (Punkt) nach dem Caret und der vor dem Dollarzeichen stehen für ein einzelnes Zeichen. Mit anderen Worten: Wir löschen das erste und das letzte Zeichen. Beachten Sie, dass dadurch alle Zeichen gelöscht werden, auch wenn sie nicht in der Zeichenkette vorhanden sind.
EX: