it-swarm.com.de

Verzeichnispfad und Dateiname extrahieren

Ich habe eine Variable mit dem Verzeichnispfad und dem Dateinamen. Ich möchte den Dateinamen alleine aus dem Unix-Verzeichnispfad extrahieren und in einer Variablen speichern.

fspec="/exp/home1/abc.txt"  
29
Arav

Verwenden Sie den Befehl basename , um den Dateinamen aus dem Pfad zu extrahieren:

[/tmp]$ export fspec=/exp/home1/abc.txt 
[/tmp]$ fname=`basename $fspec`
[/tmp]$ echo $fname
abc.txt
67
codaddict

bash, um Dateinamen zu erhalten

fspec="/exp/home1/abc.txt" 
filename="${fspec##*/}"  # get filename
dirname="${fspec%/*}" # get directory/path name

andere Möglichkeiten 

awk

$ echo $fspec | awk -F"/" '{print $NF}'
abc.txt

sed

$ echo $fspec | sed 's/.*\///'
abc.txt

mit IFS

$ IFS="/"
$ set -- $fspec
$ eval echo \${${#@}}
abc.txt
19
ghostdog74

base = $ (Basisname $ fspec)

3
William Pursell

dirname "/usr/home/theconjuring/music/song.mp3" ergibt /usr/home/theconjuring/music.

2
Berk Özbalcı

bash:

fspec="/exp/home1/abc.txt"
fname="${fspec##*/}"
echo $fspec | tr "/" "\n"|tail -1
1
ghostdog74

Bash "here string" verwenden:

fspec = "/ exp/home1/abc.txt" 

tr "/" "\ n" <<< $ fspec | Schwanz -1

dateiname = `tr"/""\n "<<< $ fspec | Schwanz -1 "

0
NetHead