Hallo liebe Freunde,
nachdem ich mir nun schon das ein oder andere Skript geschrieben habe um DVD/CD zu rippen, komme ich gerade nicht weiter.
Was soll das Skript machen?
Nach der Eingabe eines Suchbegriffes (in den Logs "Der_Tatortreiniger") wird nach dem info File gesucht. Da steht der Episodenname und der Serienname drin. Der Episodenname wird extrahiert.
Das funktioniert und auch nicht.
Die grep-Zeilen funktionieren an für sich, die lasse ich schon in anderen Skripten laufen.
#!/bin/bash
#!/usr/bin/sed -f
set -x
read -p "Suchbegriff eingeben: " suche_var
video_verz_var=/var/lib/video.00
out_verz_var=/srv/samba/vdr-save
find $video_verz_var -maxdepth 2 -name $suche_var |
while read name_var
do
find "$name_var" -maxdepth 5 -name "info*" -print0 |
while read -d $'\0' info_var
do
datei_name_var=$(basename "$info_var")
# dat_neu_var=$(grep 'S ' "$info_var" | sed 's/^S //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/')
# verz_neu_var=$(grep 'T ' "$info_var" | sed 's/^T //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/')
# verz_pfad_var=$(dirname "$info_var")
# Kontrollausgabe
echo "$info_var"
echo "$datei_name_var"
#echo "$verz_pfad_var"
echo "$dat_neu_var"
echo "$verz_neu_var"
#echo "$out_verz_var/$dat_neu_var"
done
done
Display More
-print0 und -d$'\=' in der Zweiten find-Schleife habe ich nach einer Suche
https://stackoverflow.com/questions/9612…by-find#9612232
eingebaut, Stelle aber keinen Unterschied fest.
Starte ich das Skript und lasse mir mit echo nur die Pfade ausgeben , dann sieht alles noch in Ordnung aus. Zeile für Zeile werden die Pfade angezeigt.
Kommentiere ich nun die beiden "grep" Zeilen aus, dann werden mir nicht die erwarteten beiden Zeilen beschnitten und ausgegeben, sondern irgendetwas.
Die Ausgabe sieht wie folgt aus:
/srv/samba/software/linux/scripte/./test-011.sh
+ read -p 'Suchbegriff eingeben: ' suche_var
Suchbegriff eingeben: Der_T*
+ I=1
+ video_verz_var=/var/lib/video.00
+ out_verz_var=/srv/samba/vdr-save
+ read name_var
+ find /var/lib/video.00 -maxdepth 2 -name 'Der_T*'
+ find /var/lib/video.00/Serien/Der_Tatortreiniger -maxdepth 5 -name 'info*' -print0
+ read -d '' info_var
++ basename /var/lib/video.00/Serien/Der_Tatortreiniger/%S03E01_Fleischfresser/2014-05-15.20.16.19-0.rec/info
+ datei_name_var=info
++ grep 'S ' /var/lib/video.00/Serien/Der_Tatortreiniger/%S03E01_Fleischfresser/2014-05-15.20.16.19-0.rec/info
++ sed 's/^S //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/'
+ dat_neu_var=Fleischfresser
++ grep 'T ' /var/lib/video.00/Serien/Der_Tatortreiniger/%S03E01_Fleischfresser/2014-05-15.20.16.19-0.rec/info
++ sed 's/^T //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/'
+ verz_neu_var=Der_Tatortreiniger
+ echo /var/lib/video.00/Serien/Der_Tatortreiniger/%S03E01_Fleischfresser/2014-05-15.20.16.19-0.rec/info
/var/lib/video.00/Serien/Der_Tatortreiniger/%S03E01_Fleischfresser/2014-05-15.20.16.19-0.rec/info
+ echo info
info
+ echo Fleischfresser
Fleischfresser
+ echo Der_Tatortreiniger
Der_Tatortreiniger
+ read -d '' info_var
++ basename /var/lib/video.00/Serien/Der_Tatortreiniger/%S05E02_Das_freie_Wochenende/2015-12-17.22.31.5-0.rec/info
+ datei_name_var=info
++ grep 'S ' /var/lib/video.00/Serien/Der_Tatortreiniger/%S05E02_Das_freie_Wochenende/2015-12-17.22.31.5-0.rec/info
++ sed 's/^S //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/'
+ dat_neu_var='C_S19.2E-1-1073-28226_NDR_FS_NDS
Das_freie_Wochenende
@_<epgsearch><channel>5_-_NDR_FS_NDS<#2Fchannel><searchtimer>tatortreiniger</searchtimer><start>1450387680</start><stop>1450390200</stop><s-id>26</s-id><eventid>45072</eventid></epgsearch>'
++ grep 'T ' /var/lib/video.00/Serien/Der_Tatortreiniger/%S05E02_Das_freie_Wochenende/2015-12-17.22.31.5-0.rec/info
++ sed 's/^T //; s/ /_/g; s/\//#2F/; s/"("/\(/; s/")"/\)/; s/\:/#3A/'
+ verz_neu_var=Der_Tatortreiniger
+ echo /var/lib/video.00/Serien/Der_Tatortreiniger/%S05E02_Das_freie_Wochenende/2015-12-17.22.31.5-0.rec/info
/var/lib/video.00/Serien/Der_Tatortreiniger/%S05E02_Das_freie_Wochenende/2015-12-17.22.31.5-0.rec/info
+ echo info
info
+ echo 'C_S19.2E-1-1073-28226_NDR_FS_NDS
Das_freie_Wochenende
@_<epgsearch><channel>5_-_NDR_FS_NDS<#2Fchannel><searchtimer>tatortreiniger</searchtimer><start>1450387680</start><stop>1450390200</stop><s-id>26</s-id><eventid>45072</eventid></epgsearch>'
C_S19.2E-1-1073-28226_NDR_FS_NDS
Das_freie_Wochenende
@_<epgsearch><channel>5_-_NDR_FS_NDS<#2Fchannel><searchtimer>tatortreiniger</searchtimer><start>1450387680</start><stop>1450390200</stop><s-id>26</s-id><eventid>45072</eventid></epgsearch>
Display More
Bis "Fleischfresser" ist alles so wie erwartet, danach verstehe ich das Ergebnis nicht mehr. Kann mir jemand sagen wo der Fehler ist? Da die richtigen Pfade ohne grep/sed angezeigt werden erwarte ich mit grep/sed auch die richtige Verarbeitung!?