Lassen Sie uns eine Zeichenfolge haben: ./dfsgfd/dfs/as/ssss
.So löschen (oder ersetzen) Sie alle Zeichen zwischen zwei ausgewählten Zeichen. Sed. Bash
Ich brauche dies zu erhalten: |-----ssss
Also schreibe ich ein Skript mit sed: sed -r -en 's/.\//|--/;s/\//-/g;s/-[^\-]*-/--/g;'
Durch diese regexp sed -r -e 's/.\//|--/;s/\//-/g;'
Ich habe: |--dfsgfd-dfs-as-ssss
.
Und jetzt muss ich alle Zeichen zwischen - und - löschen. Wie kann ich das machen? Diese Regexp macht es nicht gut: s/-[^\-]*-/--/g;
.
Vielen Dank!
Ihre Anforderung ist 'zu bekommen | ----- ssss' als Ausgabe - Richtig? Wo haben wir 5 "-" gefolgt von Pipe-Symbol. Gibt es Kriterien, um diese fünf "-" zu drucken? –
Sie brauchen wirklich nicht 'sed' für dieses ...' echo "| ----- $ {s ## * /}" 'wo' $ s' ist Ihre Zeichenkette ... –
Sie suchen etwas wie das - 'echo" ./dfsgfd/dfs/as/ssss"|sed -r -e 's /.(.*)\// | -----' ' Ausgabe '| - ---- ssss' –