2017-07-27 2 views
1

Ich versuche, den Befehl zum Ausschneiden in meinem Bash-Skript verwenden. Ich brauche den Namen eines RPM-Pakets, das 'sys' in seinem Namen enthält, ohne seinen vollständigen Pfad. Also habe ich versucht, dies:Ausschneiden: Verwenden Sie "/" als Trennzeichen

packageName=$(find temp/noarch/ -name '*sys*noarch.rpm' | cut -d "\/" -f 3) 

Ich dachte, auf diese Weise den Namen des Pakets zurückkehren konnten, ohne die temp/noarch /, aber es sagt nur mir. Ich weiß, ich könnte nur den Teilstring "temp\/noarch\/" entfernen, aber ich würde es gerne mit Schnitt machen.

Vielen Dank im Voraus!

Antwort

5

"\/" dehnt nicht zu /, so cut klagt:

cut: the delimiter must be a single character 

Verwenden Ebene / statt:

packageName=$(find temp/noarch/ -name '*sys*noarch.rpm' | cut -d/ -f3) 
+0

merkwürdige Sache, die hier nicht linux braucht eine '\ /' zu erhalten. Wie auch immer, hat gut funktioniert, vielen Dank. – Eos

+0

@Eos: Seltsam? Wo ** braucht es einen Schrägstrich vor dem Schrägstrich? – choroba

+0

Ich arbeite mit Dateien mit Pfaden innerhalb. Als ich nach diesen Pfaden suchte, suchte ich nach "path \/of \/a \/file \ /" ', damit der Charakter entkommen konnte. Ich habe mich daran gewöhnt. Mein Fehler. – Eos

Verwandte Themen