Dateiendung abschneiden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Jogibär
Beiträge: 149
Registriert: 11.09.2002 22:43:37

Dateiendung abschneiden

Beitrag von Jogibär » 11.02.2006 19:17:05

Hallo mal wieder,

ich will von einem Dateinamen, der in einer Variablen
steht, die Dateiendung abschneiden, als so etwa:

video1.m2v > video1

Ich habe schon mit cut herumprobiert, aber irgendwie
funktioniert das nicht.
Könnte mir jemand mal bitte einen Tip geben ?

mfg

Jogibär

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 11.02.2006 19:27:58

hallo aber auch!

wenn die Endung bekannt ist:

Code: Alles auswählen

KURZER_NAME=`basename $LANGER_NAME .m2v`
Beware of programmers who carry screwdrivers.

ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

Beitrag von ding280 » 11.02.2006 19:28:23

Hallo,

wenn du dir die ledeglich ein Verzeichnis ohne Dateiendung anzeigen lassen willst, sollte das hier funktionieren:

Code: Alles auswählen

ls -1 | cut -d. -f1
Gruß Tom

//edit:
Hab grad gelesen, du hast das in einer Variable stehen.
Dann sollte das funktionieren (ungeprüft):

Code: Alles auswählen

echo $VARIABLE | cut -d. -f1

Benutzeravatar
Jogibär
Beiträge: 149
Registriert: 11.09.2002 22:43:37

Beitrag von Jogibär » 11.02.2006 20:16:41

Hallo,

so richtig funktioniert das nicht.
ich habe mehrere Punkte im Dateinamen, sowie Leerzeichen.

Hier mal das ganze Script :

>>>

#!/bin/bash
SHELL=/bin/sh

bitrate=$1

breite=$2
hoehe=$3

# umwandeln mit Deinterlace Filter, 2Pass, schwarze Balken entfernen

ls *.m2v | while read;
do
quelle='basename "$REPLY" .m2v'
mencoder -noskip -sws 2 -vf pp=lb,crop=$breite:$hoehe -mc 0 -ovc xvid -xvidencopts pass=1 -o /dev/null "$quelle".m2v
mencoder -oac mp3lame -lameopts preset=standard -audiofile "$quelle".mp2 -noskip -sws 2 -vf pp=lb,crop=$breite:$hoehe -mc 0 -ovc xvid -xvidencopts
me_quality=6:bitrate=$bitrate:qpel:quant_type=mpeg:pass=2 -o "$quelle".avi "$quelle".m2v
done

Methusalix

Dateiendung abschneiden

Beitrag von Methusalix » 12.02.2006 17:40:49

Hallo,

Du kannst z.B. mit sed auch Leerzeichen aus Dateinamen entfernen. Die Grundform sähe so aus:

Code: Alles auswählen

sed 's/ //g'
Du kannst mit sed auch Dateiendungen loswerden. Mit awk wird`s auch gehen.
Vielleicht solltest Du mal einen "typischen" Dateinamen posten.

Gruß
Matthias

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 12.02.2006 18:29:05

Jogibär hat geschrieben:

Code: Alles auswählen

	quelle='basename "$REPLY" .m2v' 
wenn ich das richtig sehe, hast du hier die falschen Hochkomma benutzt
Mit diesen sollte es funktionieren:

Code: Alles auswählen

	quelle=`basename "$REPLY" .m2v` 
kannst aber auch folgendes schreiben:

Code: Alles auswählen

	quelle=$(basename "$REPLY" .m2v) 
Gruß
gms

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 13.02.2006 09:24:18

Also, die Bash bietet dafuer das einfaches:

Code: Alles auswählen

DATEI=video.mpg
echo ${DATEI%%.mpg/}
video
Siehe auch das Kapitel EXPANSION -> Parameter expansion in der Bash-Manpage.

Antworten