opensuse
[Arriba] [Todas las Listas]

Re: [opensuse] bash -- Dónde dentro el heck es "^M...80 espacios...^M"

To: suse <opensuse@xxxxxxxxxxxx>
Subject: Re: [opensuse] bash -- Dónde dentro el heck es "^M...80 espacios...^M" Consiguiendo escrito por tee?? (Puede lo cojo?)
From: "David C. Rankin" <drankinatty@xxxxxxxxxxxxxxxxxx>
Date: Thu, 29 Sep 2011 18:10:28 -0500
Delivered-to: opensuse@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 29 Sep 2011 19:11:23 -0400
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <4E84BB80.9070709@suddenlinkmail.com>
List-archive: <http://lists.opensuse.org/opensuse/>
List-help: <mailto:opensuse+help@opensuse.org>
List-owner: <mailto:opensuse+owner@opensuse.org>
List-post: <mailto:opensuse@opensuse.org>
List-subscribe: <mailto:opensuse+subscribe@opensuse.org>
List-unsubscribe: <mailto:opensuse+unsubscribe@opensuse.org>
Mailing-list: contact opensuse+help@xxxxxxxxxxxx; run by mlmmj
Organization: Rankin Law Firm, PLLC
References: <4E83A932.9040005@suddenlinkmail.com> <4E83E337.5070707@antonaylward.com> <20110929081353.GA6167@grusum.endjinn.de> <4E84AD9C.6090101@suddenlinkmail.com> <4E84BB80.9070709@suddenlinkmail.com>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110922 Thunderbird/7.0
En 09/29/2011 01:40 PM, David *C. *Rankin Escribió:
   *dnh, todos ven cualesquier agujeros en él o una manera de hacerlo mejor? Justo iba para
echarlo una una función y escribirlo fuera...

Justo FYI, aquí es lo que acabé arriba con. Añadí un intermedio *tmp archivo para desnudar el \*r:

#!/Cubo/*bash

## *dir prueba
[[ -*d /*dat_*e/*dv/nuevo ]] #verbcj "No /*dat_*e/*dv/nuevo, saliendo..."; Salida 2; }
*cd /*dat_*e/*dv/el eco nuevo "no puede cambiar a /*dat_*e/*dv/nuevo, saliendo..."; Salida 2; }

## la cinta leída cuenta y montar *vars & *tmp archivos
*tapect#num{^1:-$(</*dat_*e/*dv/*tapect.*txt)}
*tmpfn=/*tmp/*dvtmp.*log
*tmpapp=/*tmp/*dvapp.*log
:>$*tmpfn
:>$*tmpapp
Primer_*dt=""
último_*dt=""

## fija formato de fecha de *yyyy.*mm.*dd A *mm/*dd/*yyyy
*fixdfmt()
  #default{^[[ -*n $1 ]] #nom_de_nom "de eco: Nada pasado para funcionar '*fixdfmt'"; regreso 1; }
  año#num{^1//.*}
  Día#num{^1##*.}
  *mo#Num{^1%.*}
  *mo#unknown{^*mo##*.}
  Eco#unknown{^*mo}/${#nom_nom_nom}/${de año}"
     0
}

## *parse fechas de $*tmpfn para conseguir inicio y fechas de fin para índice de cinta
*getdates()
  #unknown{^*OLDIFS=$IFS
  de IFS=$'\*n'
  *clipct=1
  puesto que *i en $(*grep \"*d $*tmpfn); hacer
    *dt#unknown{^*i//\"*dcrv-}
    *dt#unknown{^*dt//_*}
    [[ $*clipct -*eq 1 ]] && primer_*dt=$(*fixdfmt $*dt)
    ((*clipct++))
  hecho
  último_*dt=$(*fixdfmt $*dt)
  IFS=$*OLDIFS
}

## descargar vídeo con producción a *tmpfn & *rewind cinta cuándo eco
hecho -*e "\*nCapture Empezó: $(fecha '+%*b %*e %*T')\*n" | *tee -un $*tmpfn
*dvgrab -*rewind -*timestamp -*autosplit=3600 -el formato crudo *dcrv- 2>&1 | *tee -un $*tmpfn
*dvcont *rewind

## fijar el \*r gato
de asunto $*tmpfn | *sed /^[[:espacial:]]*\*r//' > /*tmp/fija.*log
*cp /*tmp/Fija.*log $*tmpfn

## Consigue la cinta empieza y fechas de fin
*getdates

## escribir cinta No. Y empezar & fechas de fin a *append eco
de archivo -*e "\*nTape: $*tapect  --  $primer_*dt - $último_*dt\*n" >> $*tmpapp

## escribe *dir contenido y captura *info a *append archivo y *append a índice de cinta, actualiza captura *log
*ls -*l >> $*tmpapp
gato $*tmpfn >> $*tmpapp
gato $*tmpapp >>/*dat_*e/*dv/cinta-*idx.*txt

Gato $*tmpfn >> /*dat_*e/*dv/captura.*log

## Mueve *dv clips a permanente *dir y espejo en /*dat_*f
*mv /*dat_*e/*dv/nuevo/* /*dat_*e/*dv/*sony
*cp -*uav /*dat_*e/*dv#unknown{^*sony,cinta-*idx.*txt} /*dat_*f/*dv/

## Actualiza contador de cinta
*tapenext=$*tapect
((*tapenext+=1))
eco $*tapenext >/*dat_*e/*dv/*tapect.*txt
Cinta "  de eco cuenta actualizada a: $*tapenext"

salida 0


--
David *C. *Rankin, *J.*D.,*P.*E.
--
A *unsubscribe, *e-correo: *opensuse+unsubscribe@xxxxxxxxxxxx
Puesto que órdenes adicionales, *e-correo: *opensuse+help@xxxxxxxxxxxx


On 09/29/2011 01:40 PM, David C. Rankin wrote:
   dnh, all see any holes in it or a way to make it better? I was just going to
throw it an a function and write it out...

Just FYI, here is what I ended up with. I added an intermediate tmp file to strip the \r:

#!/bin/bash

## dir test
[[ -d /dat_e/dv/new ]] || { echo "No /dat_e/dv/new, exiting..."; exit 2; }
cd /dat_e/dv/new || { echo "cannot change into /dat_e/dv/new, exiting..."; exit 2; }

## read tape count and set up vars & tmp files
tapect=${1:-$(</dat_e/dv/tapect.txt)}
tmpfn=/tmp/dvtmp.log
tmpapp=/tmp/dvapp.log
:>$tmpfn
:>$tmpapp
first_dt=""
last_dt=""

## fix date format from yyyy.mm.dd to mm/dd/yyyy
fixdfmt() {
  [[ -n $1 ]] || { echo "ERROR: Nothing passed to function 'fixdfmt'"; return 1; }
  year=${1//.*}
  day=${1##*.}
  mo=${1%.*}
  mo=${mo##*.}
  echo "${mo}/${day}/${year}"
  return 0
}

## parse dates from $tmpfn to get start and end dates for tape index
getdates() {
  OLDIFS=$IFS
  IFS=$'\n'
  clipct=1
  for i in $(grep \"d $tmpfn); do
    dt=${i//\"dcrv-}
    dt=${dt//_*}
    [[ $clipct -eq 1 ]] && first_dt=$(fixdfmt $dt)
    ((clipct++))
  done
  last_dt=$(fixdfmt $dt)
  IFS=$OLDIFS
}

## download video with output to tmpfn & rewind tape when done
echo -e "\nCapture Started: $(date '+%b %e %T')\n" | tee -a $tmpfn
dvgrab -rewind -timestamp -autosplit=3600 -format raw dcrv- 2>&1 | tee -a $tmpfn
dvcont rewind

## fix the \r issue
cat $tmpfn | sed 's/^[[:space:]]*\r//' > /tmp/fix.log
cp /tmp/fix.log $tmpfn

## get tape begin and end dates
getdates

## write tape No. and begin & end dates to append file
echo -e "\nTape: $tapect  --  $first_dt - $last_dt\n" >> $tmpapp

## write dir content and capture info to append file and append to tape index, update capture log
ls -l >> $tmpapp
cat $tmpfn >> $tmpapp
cat $tmpapp >>/dat_e/dv/tape-idx.txt

cat $tmpfn >> /dat_e/dv/capture.log

## move dv clips to permanent dir and mirror on /dat_f
mv /dat_e/dv/new/* /dat_e/dv/sony
cp -uav /dat_e/dv/{sony,tape-idx.txt} /dat_f/dv/

## update tape counter
tapenext=$tapect
((tapenext+=1))
echo $tapenext >/dat_e/dv/tapect.txt
echo "  Tape count updated to: $tapenext"

exit 0


--
David C. Rankin, J.D.,P.E.
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx


<Anterior por Tema] Tema Actual [Siguiente por Tema>