Examen Parcial - 75.08. Sistemas Operativos

Cátedra: Osvaldo Clua
Fecha: Primera oportunidad - Primer Cuatrimestre 2002
Día: 21/05/2002
Tema: Regular Expression

Esta página está incompleta; podés ayudar completando el material.

Enunciado

Resolver el siguiente ejercicio utilizando SOLO el comando sed. NO SE PUEDE utilizar mas de DOS(2) comandos.

Una ferretería tiene su lista de precio en un archivo ASCII con los siguientes campos:

  • Código de artículo
  • Descripción
  • Precio unitario

No hay separadores de campo pero sabemos que:

  1. Todas las descripciones de los items terminan con punto(.).
  2. Todos los precios unitarios tienen al menos un(1) dígito en su parte enterea y dos(2) dígitos en su parte decimal
  3. El separador de miles es la coma(,).
  4. El separador de decimales es el punto(.).

Ejemplo de archivo
20.12345.00.59Tornillo cab, red.23,345.43
76.12345.76.59Tornillo cab, cuad.8,787,677.00
243.1234Clavo,carp. 0.23

Se desea generar otro archivo variando el formato de importe de manera que el separador de miles sea el punto(.) y el separador de decimales sea la coma(,).

Resolución

#!/bin/bash
 
# Reemplazo los ultimos , por .
sed "s/\([0-9]\{,3\}\),\([0-9]\{3\}\)/\1.\2/g" listaprecios.dat \
| sed "s/\.\([0-9]\{2\}\)$/,\1/g"
# Reemplazo el ultimo . por ,
materias/75/08/parcial_20020521_1regexp.txt · Última modificación: 2013/11/09 20:26 por loonatic
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki