[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sustituir en base de datos de texto en bash



El Tue, 30 Jun 2015 16:53:32 +0000, petrohs el compa obrero escribió:

> 2015-06-30 16:46 GMT+00:00 Debia Linux <debianeromx@gmail.com>:
>> Listeros:

(...)

>> ¿Como puedo hacerle mediante algun comando para ingresar el nombre del
>> pais (ya que en su momento no sabiamos el pais donde se mando a hacer)
>> justamente en la columna tres.
>>
>> mediante egrep puedo aislar la linea de este producto (porque son
>> muchos productos con un codigo diferente.
>>
>> egrep 124564_78789888878 productos.db > tmp0
>>
>>
>> Ya tengo aislada la linea y ahora ¿Cómo le hago?. Podria yo usar tal
>> vez awk pero no se como funcionaria.
>>
>> Gracias por su ayuda.

> Buen día
> 
> Seria algo parecido a
>       cat productos.db | awk -F\| '{if($1 eq 124564_78789888878){print
> $1"|"$2"|pais"|$4} else {print $0;} }' > productos.db1 pero lo estoy
> haciendo de memoria, en caso de error consulta
>       man awk

Awk parece una buena opción. Tu comando modificado:

***
awk 'BEGIN {FS = "|"; OFS= "|" } {if($1 == "124564_78789888878"){$3 = "country"; print; } else {print $0;} }' input.db > output.db
***

Saludos,

-- 
Camaleón


Reply to: