Bash Image Processing

Похоже, есть проблема с ключевыми GPG для репозитория http://nz.archive.ubuntu.com :

W: GPG error: http://nz.archive.ubuntu.com trusty-backports Release: The following signatures were invalid: BADSIG 40976EAF437D05B5

Чтобы решить эту проблему, вам нужно получить открытый ключ для отпечатка пальца 40976EAF437D05B5 :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

Теперь sudo apt-get update должно работать в обычном режиме.

В качестве альтернативного решения вы можете использовать основной репозиторий или другое зеркало:

deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

РЕДАКТИРОВАТЬ:

Как указал @muru, есть некоторые проблемы с зеркалом nz , поэтому вам следует использовать другое репо как решение.

0
26.02.2018, 22:43
2 ответа

Le vendría bien un bucle en su guión:

nfile="$img_dir$fname"
while [ -e "$nfile" ]
do
  ((i++))
  fname=$(basename "$fline")".$i" 
  nfile="$img_dir$fname"
done

Ahora tiene un nombre de archivo sin usar

1
28.01.2020, 02:43

Puede cargarlos en una matriz con globbing y usar el tamaño de la matriz:

shopt -s nullglob
dups=("$nfile".*)
shopt -u nullglob
i=${#dups[@]}
((i++))

La numeración va de 1 en adelante, por lo que cuando el recuento de archivos es 0, aún debe aumentarlo una vez para obtener 1. Se necesita configurar nullglobya que, de lo contrario, el tamaño de la matriz sería 1, como se explica aquí:¿Cómo crear una matriz posiblemente vacía a partir de un nombre de archivo global? . shopt -u nullglobhace lo contrario, es decir. desarma el nullglob.

Aquí hay un problema con otros nombres de archivo que se ajustan al patrón "$nfile".*. *coincidirá con cualquier cosa, no solo con números, así que ten cuidado.

El conjunto quedaría así:

img_dir='/home/filies/images/'
img_fil='/home/files/img_dump.txt'
#i='0'
while read -r fline
do
   fpath=$(dirname "$fline")"/"
   fname=$(basename "$fline")".$i"         
   nfile="$img_dir$fname"
   if [ ! -e "$nfile" ]; then
      mv "$fline $img_dir$nfile"
      echo "NF=> $nfile"
   else
      shopt -s nullglob
      dups=("$nfile".*)
      shopt -u nullglob
      i="${#dups[@]}"
      ((i++))
      mv "$fline $img_dir$nfile.$i"
      echo "F=> $fname.$i P=> $fpath"
   fi 
done < "${img_fil}"
exit 

Observe la línea

i='0'

está comentado. En primer lugar, porque en esta situación no se necesita. En segundo lugar, si usa otra forma de resolver esto, tenga en cuenta que el valor de ipermanecerá aumentado después de cada bucle whilesi no lo restablece.

Agregué .$ipara ti en esta línea, así que quítalo si eso no es lo que quieres:

echo "F=> $fname.$i P=> $fpath" 
0
28.01.2020, 02:43

Теги

Похожие вопросы