Entfernen Sie unnötige Schrägstriche von einem gegebenen Pfad mit bash

8

Wie kann ich unnötige Schrägstriche in einem bestimmten Pfad loswerden?

Beispiel:

%Vor%

Ich möchte:

%Vor%     
casper 09.01.2011, 11:56
quelle

7 Antworten

20

Verwenden Sie readlink :

%Vor%

Beachten Sie, dass dadurch symbolische Links kanonisiert werden. Wenn Sie das nicht möchten, verwenden Sie sed :

%Vor%     
phihag 09.01.2011 12:11
quelle
6

Verwenden von reinem Bash:

%Vor%     
Dennis Williamson 09.01.2011 14:55
quelle
2

Mit realpath:

realpath -sm $p

Parameter:

%Vor%     
Mattia72 11.01.2017 10:54
quelle
0
  1. Überlegen Sie, ob Sie dies tun müssen. Geben Sie unter Unix doppelte Pfadtrennzeichen an (und auch Dinge wie /foo/.//bar///hello/./world funktionieren einwandfrei.
  2. Sie können readlink -f verwenden, aber dies kanonisiert auch die symbolischen Links in diesem Pfad, so dass das Ergebnis von Ihrem Dateisystem abhängt und der angegebene Pfad tatsächlich existieren muss, so dass dies nicht für virtuelle Pfade funktioniert.
Robie Basak 09.01.2011 12:14
quelle
0

Dies funktioniert mit mehreren Trennzeichen und geht nicht davon aus, dass der angegebene Pfad existieren sollte:

%Vor%

Aber vereinfacht nicht gut Zeichenketten mit ".."

    
Feri 05.06.2013 21:51
quelle
0

Ihre Eingabe:

%Vor%

Befehl zum Entfernen der irrelevanten Schrägstriche:

%Vor%

Ausgabe:

%Vor%     
dsaydon 09.02.2018 22:21
quelle
-4

Danke für die Antworten. Ich weiß, dass der Pfad gut funktioniert. Ich möchte das nur aus optischen Gründen.

Ich habe eine andere Lösung gefunden: echo $p | replace '//' ''

    
casper 09.01.2011 12:34
quelle

Tags und Links