martes, 2 de diciembre de 2008

Shell Scripts - Copiar linas de un fichero a otro.

He aquí un script para copiar las n primeras lineas de un fichero a otro fichero.
Echale un ojo!

#!/bin/bash

Fich1=$1
Fich2=$2
NLineas=$3

if [ $# != 3 ];then
echo "[x] El número de parámetros es incorrecto."
echo "Se esperaban tres argumentos."
exit
fi

/usr/bin/test -f $Fich1
if [ $? = 1 ];then
echo "[x] El argumento $Fich1 no es un fichero o no existe."
exit
fi

/usr/bin/test -f $Fich2
if [ $? = 1 ];then
echo "[x] El argumento $Fich2 no es un fichero o no existe."
echo "Se creará $Fich2."
fi

if expr $NLineas \<= 0 &>/dev/null;then
echo "[x] El número de lineas recibido como parámetro es incorrecto."
echo "Se esperaba un valor mayor que 0."
exit
fi

LineasReales=`/usr/bin/wc -l $Fich1 | cut -d\ -f1`

if test $LineasReales -lt $NLineas;then
echo "[x] El fichero $Fich1 tiene menos lineas de las que se desean copiar."
exit
fi

/bin/cat $Fich1 | /usr/bin/head -n$NLineas >> $Fich2

No hay comentarios: