Archive

Archive for the ‘Prompt’ Category

Convertir archivos Open XML (DOCX) a Open Document Format (ODF) y viceversa

April 13th, 2010 Güimi No comments

Antes o después nos encontramos con el momento desagradable en que nos envían un documento en el formato “Open XML”, un formato cerrado de Microsoft que utiliza a partir de Office 2007 (archivos docx, xlsx, pptx…).

En este caso lo primero que hay que hacer es explicar al remitente que es mejor no utilizar esa engañifa y solicitarle de nuevo el documento en otro formato. Una opción es instalar odf-converter en Windows que permite a Microsoft Office guardar documentos en ODF.

Lo segundo, si lo primero falla, es convertir el documento al formato estándar y abierto ODF, mediante una herramienta en línea de comandos de Go-OO.org basada siempre en odf-converter (la pista es de OOONinja).

Para ello descargamos el fichero rpm desde el repositorio de go-oo.org.
$ wget http://download.go-oo.org/tstnvl/odf-converter/RPMS/i586/odf-converter-3.0.5273-1.i586.rpm

Instalamos herramientas necesarias:
$ sudo aptitude install rpm libgif4

Extraemos los ficheros, bien mediante el gestor de archivadores (doble click sobre el rpm), bien mediante:
$ rpm2cpio odf-converter*rpm | cpio -ivd

Y copiamos los binarios:
$ sudo cp usr/lib/ooo-2.0/program/OdfConverter /usr/bin/odfconverter-2.0
$ sudo cp usr/lib/ooo3/program/OdfConverter /usr/bin/odfconverter-3

El uso es muy sencillo. Por ejemplo para convertir un fichero XLSX hacemos:
$ odfconverter-2.0 fichero.xlsx
Y nos genera (tarda un poco) fichero.ods.

También se puede utilizar para convertir ficheros ODF a DOCX, pero no veo el interés o beneficio. En un momento dado es mejor convertir al formato anterior de Microsoft (doc, xls, ppt…).

Ordena archivos en sistemas de ficheros FAT

January 8th, 2010 Güimi No comments

El sistema de ficheros FAT es uno de lo más antiguos todavía en uso. Su actual popularidad se debe a que la mayoría de teléfonos móviles, lectores de MP3, cámaras de fotos, radios, etc. solo reconocen este sistema, por lo que las memorias USB, las tarjetas SD, MMC, etc. vienen formateadas con FAT.

El problema es que estos dispositivos no suelen ordenar los ficheros y directorios que encuentran, sino que muesrtan los archivos tal y como están grabados. Esto hace que muchas veces, tras pasar varias horas ordenando tu colección de música, molestándote en ponerles nombres tipo “01-titulo-artista.mp3″ y demás, te encuentras con que el reproductor lista las canciones aleatoriamente.

Para evitar esto basta con “ordenar” los ficheros en el sistema FAT. En GNU/Linux, como es habitual, es muy sencillo hacerlo (el dispositivo debe estar desmontado):
sudo fatsort (dispositivo)

Para que esto funcione bien, primero hay que instalar fatsort, lo que a su vez tambien es muy sencillo:
sudo aptitude install fatsort
Se puede obtener información sobre la patición con:
sudo fatsort -i (dispositivo)

FAT, sort, fatsort, ordenar ficheros, sort files

Retocar videos

December 30th, 2009 Güimi No comments

Para pasar vídeos en formato 3gp, habitual en algunos teléfonos móviles, al más estándar avi podemos hacer:
$ ffmpeg -i videoIn.3gp -f avi -vcodec xvid -acodec mp3 -ar 22050 videoOut.avi

Para rotar vídeos que hemos grabado con cámaras de fotos en modo vertical, en vez de horizontal, podemos hacer:
$ mencoder -vf rotate=1 videoIn.avi -oac mp3lame -ovc lavc -o videoOut.avi
o bien:
$ mencoder -vf rotate=1,hqdn3d,eq=25:50 -oac pcm -ovc lavc videoIn.avi -o videoOut.avi
Si además queremos añadir bandas negras a los lados para que el vídeo resultante mantenga las proporciones de imagen de los vídeos horizontales podemos hacer:
$ mencoder -vf rotate=2,expand=-176:0:88:0 -oac pcm -ovc lavc videoIn.mov -o videoOut.avi

video, mencoder, ffmpeg
Categories: Multimedia, Prompt

PDF Editor

December 29th, 2009 Güimi No comments

Recientemente he descubierto “PDF Editor”, un programa GPL para GNU/Linux que permite editar PDFs.
Hasta ahora me limitaba a trabajar con pdfs desde el prompt o incluso con GIMP.
PDF Editor no es que funcione maravillosamente, aún está un poco verde, da algunos errores de funcionamiento… pero al final sirve para lo que promete: editar ficheros PDFs.
Funciona en modo gráfico y comando y además está en los repositorios de Debian, Ubuntu…
$ sudo aptitude install pdfedit

PDF Editor, PDF, pdfedit
Categories: GNU/Linux, Ofimática, Prompt

Renombrar fotos en base a la fecha de la cabecera Exif

July 21st, 2009 Güimi No comments

Para renombrar fotos poniéndoles la fecha en que se realizaron podemos usar el siguiente comando:
$ jhead -n%Y%m%d-%H%M%S *.jpg

p1020288.jpg --> 20090628-155508.jpg
p1020289.jpg --> 20090628-155558.jpg

jhead” sirve principalmente para modificar las cabeceras exif. Otro comando más sencillo es “exif“.
 

exif, jhead, prompt
Categories: Multimedia, Prompt

Pasar de Access a MySQL

July 2nd, 2009 Güimi No comments

Tengo unos compañeros que se empeñan en utilizar Ms-Access, que es de los pocos programas que no funcionan de manera alguna en GNU/Linux (solo queda el recurso de usar una máquina virtual, como VirtualBox).
Por ello cuando necesito trabajar con ella (o ellos necesitan hacer consultas rápidas y como no saben me lo piden a mi) utilizo un pequeño script para pasar las tablas de Ms-Access a MySQL.
Y dice así:

#!/bin/bash
#
# vuelca_mdb 0.1 - GPL
# (c) Guimi
# http://guimi.net
#
# Ult. mod: Guimi 2009-07
#

# DATOS DEL FICHERO MDB
mdb=xxx.mdb
TABLA1=XXX
TABLA2=YYY

# DATOS DE MYSQL
bbdd=xxx
usuario=xxx
clave=xxx

# FICHERO TEMPORAL
tmp="tmp.$$"

echo "Exportando desde mdb..."
mdb-schema $mdb -S > sql-creacion_mdb$$.sql
mdb-export $mdb $TABLA1 -S -I > sql-datos_mdb$$.sql
mdb-export $mdb $TABLA2 -S -I >> sql-datos_mdb$$.sql

echo "Modificando ficheros exportados..."
# Hay que añadir "IF EXISTS" al "DROP TABLE"
sed 's/DROP TABLE/DROP TABLE IF EXISTS/g' sql-creacion_mdb$$.sql > $tmp
# Hay que cambiar "Long Integer" por "Integer"
sed 's/Long Integer/Integer/g' $tmp > sql-creacion_mdb$$.sql

# Hay que añadir un punto y coma ";" al final de cada linea -que acaba en ")"-
sed -e s/.$/\)\;/g sql-datos_mdb$$.sql > $tmp
mv $tmp sql-datos_mdb$$.sql

echo "Cargando datos en MySQL..."
mysql -D $bbdd -u $usuario --password=$clave < sql-creacion_mdb$$.sql
mysql -D $bbdd -u $usuario --password=$clave < sql-datos_mdb$$.sql

echo "Borrando ficheros temporales..."
rm sql-creacion_mdb$$.sql
rm sql-datos_mdb$$.sql


A continuación otros comandos que pueden ser utiles (proceden del paquete mdbtools).

Mostrar la versión del fichero mdb:
$ mdb-ver xxx.mdb

Mostrar las tablas de un fichero mdb (-1 para mostrar una tabla por fila):
$ mdb-tables -1 xxx.mdb

Generar un fichero C con un Array con los datos de una tabla:
$ mdb-array xxx.mdb TABLA

Access, mdb, mysql, script, prompt, Ms-Access, mdbtools
Categories: BBDD, GNU/Linux, Prompt

Edición de ficheros odf desde prompt (línea de comandos)

June 17th, 2009 Güimi 2 comments

Me encuentro con que tengo un conjunto de documentos en formato odf, concretamente odt y ods, en los que me gustaría hacer una simple modificación: pongamos que quiero cambiar en todos ellos “NOMBRE_CLIENTE” por “El Cliente”.
Para ello basta con utilizar un simple script que dice así:

#!/bin/bash
#
# modifica_odf 0.1 - GPL
# (c) Guimi
# http://guimi.net
#
# Ult. mod: Guimi 2009-06
#

####################################
tmpdir="tmp.$$"

# Hacemos un bucle para tratar todos los odf del directorio
for x in `ls *.od?`
do
  # Mostramos info
  echo "Modificando $x..."

  # Descomprimimos el odf en un directorio temporal
  unzip -q $x -d $tmpdir
  cd $tmpdir

  # Realizamos las modificaciones necesarias en styles.xml
  sed 's/NOMBRE_CLIENTE/El Cliente/g' styles.xml > tmp.xml
  mv tmp.xml styles.xml

  # Realizamos las modificaciones necesarias en content.xml
  sed 's/NOMBRE_CLIENTE/El Cliente/g' content.xml > tmp.xml
  mv tmp.xml content.xml

  # Borramos el fichero temporal tmp.xml
  rm tmp.xml

  # Regeneramos el odf
  zip -rq9 ../$x *

  # Salimos y borramos el directorio temporal
  cd ..
  rm -r $tmpdir
done

edición de ficheros odf desde prompt, edición masiva de ficheros odf, modificar ficheros odt ods odp odf

Uso básico de screen en Linux

November 1st, 2008 Güimi No comments

Tiene dos funcionalidades principales:

  • Permitir múltiples sesiones de terminal en una sola terminal (o conexión).

  • Desacoplar los programas en ejecución de la terminal real para que sigan en funcionamiento en background aunque se cierre la terminal, que podrá reconectarse más tarde.

Ejemplo de uso:
$ screen

  • Dentro de la sesión ejecutamos un programa, por ejemplo top, y lo desacoplamos con Ctrl-a Ctrl-d.

  • Desde otra sesión de terminal (o la misma) reacoplamos el proceso con screen -r o screen -R -D.

Comandos (dentro de screen). Todos empiezan por Ctrl-a:

Ctrl-a ? Ayuda y sumario de funciones
Ctrl-a c Crear una nueva terminal
Ctrl-a Ctrl-n or Ctrl-a Ctrl-p Cambiar a la Siguiente o Anterior terminal
Ctrl-a Ctrl-N Cambiar a la Siguiente o Anterior terminal N [0-9]
Ctrl-a ” Lista navegable de terminales en funcionamiento
Ctrl-a a Limpiar un Ctrl-a pulsado por error
Ctrl-a Ctrl-d Desconectar y dejar la sesión en funcionamiento
Ctrl-a x Bloquear todas las terminales con una clave

Uso básico de screen en Linux, comando screen

Categories: Prompt

Conocer que equipos hay en una red

October 29th, 2008 Güimi No comments

Hay varias herramientas que nos permiten conocer que equipos son alcanzables en nuestra red.
 

nmap

Herramienta de exploración de redes y analizador de puertos.
 
$ nmap -sP 192.168.0.0/24

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-06-27 10:13 CEST
Host equipo1 (192.168.0.1) appears to be up.
Host equipo2 (192.168.0.2) appears to be up.
Host equipo3 (192.168.0.4) appears to be up.
...
Nmap finished: 256 IP addresses (12 hosts up) scanned in 2.219 seconds

 

fping

Una herramienta de ping que se puede utilizar fácilmente para múltiples equipos y en scripts.
 
$ fping -g 192.168.0./24

192.168.0.0 error while sending ping: Permission denied
192.168.0.1 is alive
192.168.0.2 is alive
192.168.0.3 is alive
ICMP Host Unreachable from 192.168.0.2  for ICMP Echo sent to 192.168.0.4
...

 
O mejor:
$ fping -g 192.168.0./24 2> /dev/null | grep alive

192.168.0.1 is alive
192.168.0.2 is alive
192.168.0.3 is alive
...

 

ip

Herramienta de configuración del protocolo ip. Permite ver y modificar rutas, dispositivos, tuneles…
 
$ ip neig

192.168.0.4 dev eth1 lladdr xx:xx:xx:xx:xx:xx STALE
192.168.0.60 dev eth1 lladdr xx:xx:xx:xx:xx:xx STALE
192.168.0.61 dev eth1 lladdr xx:xx:xx:xx:xx:xx STALE
192.168.0.52 dev eth1 lladdr xx:xx:xx:xx:xx:xx STALE
...

 

nbtscan

Escanea redes en busca de nombres NETBIOS.
 
# nbtscan -r 192.168.0.0/24

Doing NBT name scan for addresses from 192.168.0.0/24

IP address       NetBIOS Name     Server    User             MAC address
------------------------------------------------------------------------------
192.168.0.0    Sendto failed: Permission denied
192.168.0.2     <unknown>                  <unknown>
192.168.0.60    xxxx-LAB10       <server>  xxxx-LAB10       xx:xx:xx:xx:xx:xx
192.168.0.52    xxxxxxxxxxxx-01  <server>  xxxxxxxxxxxx-01  xx:xx:xx:xx:xx:xx
192.168.0.61    xxxx-LAB11       <server>  xxxx-LAB11       xx:xx:xx:xx:xx:xx
...

 

Conocer que equipos hay en una red, Buscar equipos en una red, Averiguar que equipos hay en una red

Categories: Prompt, Redes

Uso de mencoder

September 5th, 2008 Güimi No comments

mencoder es una herramienta muy potente que viene en el paquete mplayer y permite trabajar con archivos de audio y video.
mencoder genera ficheros en formato AVI a no ser que se le indique lo contrario.

Se utiliza:
mencoder {videos de entrada} [opciones] [-o archivo de salida]

Como se ve puede utilizarse para encadenar varios archivos de video:
mencoder video1.avi video2.avi -o video_unido.avi

Algunas de las opciones más utiles son:

  • oac (output audio codec) {copy,pcm,mp3lame,lavc}
    libavc utiliza un codec de la libreria libavcodec

  • ovc (output video codec) {copy,divx4,raw,libavc}
  • vf (video filter)
    • flip (Voltear arriba-abajo)

    • mirror (Voltear derecha-izquierda)
    • rotate[=...] (Girar)
    • scale[=...] (Escalar)
    • crop[=...] (Recortar)
    • denoise3d[=...] (intenta eliminar el ruido)
    • hqdn3d[=...] (intenta eliminar el ruido con mayor calidad)
    • eq[=brillo:contraste] (Modifica los colores)
    • eq2[=...] (Modifica los colores)

    Opciones que más utilizo:

    Salida como mpeg -of mpeg
    Copiar el video -ovc copy -oac copy
    Recodificar el video -ovc lavc -lavcopts vcodec=xvid:mbd=2:trell:autoaspect
    -ovc lavc -lavcopts vcodec=mpeg4
    Indicar frames per second (fps) -fps 25
    Indicar inicio y fin de la codifiación -ss 0:10 -endpos 01:15:23
    Incluir subtitulos -sub subtitulos.srt
    Rotar video -vf rotate=1 (90º en sentido horario)
    -vf rotate=2 (90º en sentido anti-horario)
    Escalar video -vf scale=320:240
    Usar sonido externo -audiofile audio.mp3
    Des/Codificar archivos de imagen -mf type=png:fps=25 (con mf -multifiles)
    Negativo -vf eq2=1.0:-0.8
    Añadir información -info name=titulo,artist=guimi

    Ejemplos:

    • Reproducción rápida de DVD

      • mplayer dvd://1
    • Codificar videos como mpeg
      • mencoder video1.avi video2.avi -of mpeg -o videoFinal.mpg
    • Rotar un video, quitarle el ruido y darle más luz
      • mencoder -vf rotate=1,hqdn3d,eq=75:100 -oac pcm -ovc lavc videoIn.avi -o videoOut.avi
    • Convertir parte de un video a AVI con codec Xvid
      • mencoder videoIn.ogg -ss 10 -endpos 01:42:55.5 -oac pcm -ovc lavc -lavcopts vcodec=xvid:mbd=2:trell:autoaspect -o videoOut.avi
    • Codificar los capítulos 10-15 del título 2 de un DVD, redimensionando
      • mencoder dvd://2 -chapter 10-15 -vf scale=640:480 -o titulo2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4
    • Igual pero con libavcodec
      • mencoder dvd://2 -o titulo2.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 -oac copy
    • Codificación de archivos jpg
      • mencoder “mf://*.jpg” -mf fps=25 -o salida.avi -ovc lavc -lavcopts vcodec=mpeg4
    • Codificar video con un fichero de audio externo
      • mencoder videoIn.avi -o videoOut.avi -ovc copy -oac mp3lame -audiofile audio.wav
    • Incluir subtítulos en un vídeo
      • mencoder -ovc lavc -oac mp3lame pelicula.avi -o pelicula_con_subtitulos.avi -sub subtitulos.xxx

    Referencias y ejemplos del manual de mencoder, de Hache Muda y propios.

    Uso de mencoder, comando mencoder en Linux

Categories: Prompt
Para los artículos:
Creative Commons License 2003-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia "Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.

Puede ver una copia de esta licencia completa.

Para el código de programación:
General Public License GPL 2 - Copyright (c) 1998-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los desarrollos bajo los términos de la licencia "GNU General Public License, Versión 2" de Free Software Fundation.

Puede ver una copia de esta licencia completa.

Reconocimiento tautológico: Todas las marcas pertenecen a sus respectivos propietarios.