Script para manejo de archivos

Mi problema es el siguiente: necesito un script en shell, el cual elimine los espacios en blanco del nombre de un archivo intercambiándolo po el carácter ¨_¨ gracias
Respuesta
1
Te mando unos script con el manejo de awk
Para armar nombres de archivos!
--------
substr($0,2,3),substr($0,11,2),substr($0,9,2),substr($0,5,4),substr($0,13,7))
}' 2> /dev/null`
sequence1=`echo ${file_target} | cut -c1-11`
sequence=`echo ${file_target} | cut -c1-11`
list=`ls -r ${directory_target}${sequence}* 2> /dev/null`
for file in ${list}
{
x=`echo ${file} | cut -c54-56`
x=`expr ${x} + 1`
[ ${x} -lt 10 ] && x="00"${x} || x="0"${x}
sequence=`echo ${sequence} | cut -c1-11`${x}".txt"
break
}
[ $sequence = $sequence1 ] && sequence=`echo ${sequence} | cut -c1-11`"001.txt"
file_target=${sequence}
echo -en "\nGenerating File ${file_target}..."
error_awk=0
/usr/bin/awk '{
if ( NR == 1 )
lr = length($0);
else
{
if ( lr != length($0) )
{
print "\nFile Invalidate.\n" > "/dev/stderr";
'error_awk=1';
exit;
}
};
if ( substr($0,13,2) == "04" )
{
datafield = substr($0,15,6);
command = "./convertor_file_baruta_sql.sh "substr($0,13,2)" "datafield" 1";
command | getline field;
if ( field == "no_data_found" )
{
command = "./convertor_file_baruta_sql.sh "substr($0,13,2)" "datafield" 2";
command | getline field;
}
printf("%s%s%s%s%s%s%s%s\n",
substr($0,0,3),
substr($0,59,8),
"'`getlocation 7`'",
field,
"0",
substr($0,67,13),
"0",
substr($0,4,9));
}
else
datafield = substr($0,21,9);
}' ${directory_source}${file_source} > ${directory_target}${file_target}
[ ${error_awk} -eq 1 ] &&
rm -f ${directory_target}${file_target} ||
mv ${directory_source}${file_source} ${directory_target_old}${file_source}
echo -e "Done"
exit 0
------------------
Si consigo otro te lo envío luego!
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas