So entfernen Sie Zeichen in der Mitte einer Zeichenfolge in Bash


12

In Bash habe ich eine Zeichenfolge und ich versuche, ein Zeichen in der Mitte der Zeichenfolge zu entfernen. Ich weiß, wir können Zeichen vom Anfang oder Ende eines Strings wie folgt entfernen:

myVar='YES'
myVar="${myVar#'Y'}"
myVar="${myVar%'S'}"

aber wie kann ich den in der mitte entfernen?

Antworten:


18

Wenn Sie wissen, welche Zeichen entfernt werden müssen, können Sie bei der Parametererweiterung die Ersetzung verwenden:

myVar=${myVar/E}  # Replace E with nothing

Oder wenn Sie wissen, welche Zeichen Sie behalten müssen:

myVar=${myVar/[^YS]}  # Replace anything but Y or S

Oder wenn Sie die Position kennen:

myVar=${myVar:0:1}${myVar:2:1}  # The first and third characters

Was ist, wenn Sie es auch nicht wissen? Was ist, wenn Sie nur wissen, dass Sie Y und S behalten möchten?
Rutger Huijsmans

@RutgerHuijsmans: Überprüfen Sie das Update.
Choroba
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.