[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RiminiLUG-General] formattazione di un foglio eletronico (o di un csv)
- To: riminilug-general@xxxxxxxxxxxx
- Subject: Re: [RiminiLUG-General] formattazione di un foglio eletronico (o di un csv)
- From: Ivan tarozzi <ivan@xxxxxxxxxxxx>
- Date: Fri, 11 Nov 2011 18:13:56 +0100
- Authentication-results: dtc.neutrino1.xteklabs.com; dkim=fail (message has been altered) header.i=@gmail.com
- Delivered-to: battarsa@xxxxxxxxxxxx
- Delivered-to: riminilug.it_riminilug_general@xxxxxxxxxxxxxxxxxxxxxxxxx
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed; d=neutrino1.xteklabs.com; h= sender:message-id:date:from:reply-to:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; s=postfix; bh=j23KTsiUFDGpMSGghhczIgIvLpM=; b=hWdaxjF9NK/rkwGvz hm3ce6Ftml3ruc91stXDPBVgb3MSei8b2L2i8oIQrfutg060/dix7iVgvgylqTpC 4rdh7bF2/qVbkNVd2k2UOj0EqkXjTkpc1RXGF6ruDdKCAnudyzdtNg+j6OmIBu3d kb9IeOKE7fAmjWltKSIl4TZ/+U=
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=kl5hhxXU6oyvEbXmcY6Nr2knddGmNAeCdg7GFBju0qE=; b=OMeiWPKbz08InCaBFAjXGmPskSW2ASWlTla5wVsvGI1hx4bfcs5gX4nLmzLTjU1Mon amxgTeZ3lmWOrjpFuReXG85Sb9bD9RWCLnFCaTY8zq+gE+6zSMVcN4VVymaVbtRA23j/ jKb27c/3UCa3srkMAssudCa4EnfIWhQEGXmiQ=
- In-reply-to: <CAJOLuEYkH6nOnTRuYwG2u_zv1Pw-0f+vwKX=pYKgLY3Mwzy1Xw@mail.gmail.com>
- References: <CAJOLuEad=1tSDdfcN0B7iEytt_bw4kub5U9nJgborq0a71CObw@mail.gmail.com> <4EBC0D48.1080503@riminilug.it> <CAJOLuEYkH6nOnTRuYwG2u_zv1Pw-0f+vwKX=pYKgLY3Mwzy1Xw@mail.gmail.com>
- Reply-to: riminilug-general@xxxxxxxxxxxx
- Sender: Ivan Tarozzi <itarozzi@xxxxxxxxx>
- User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20111010 Lightning/1.0b2 Icedove/3.1.15
On 11/11/2011 14:38, BELLEROFONTE wrote:
[cut]
Ho creato uno script:
#! /bin/sh
awk -F , '{print $3}' /dati/Scrivania/csvs/prova > /dati/Scrivania/cacca
sed s/\"Name\"// /dati/Scrivania/cacca > /dati/Scrivania/cacca2
sed s/\"NumberGeneral\"// /dati/Scrivania/cacca2 > /dati/Scrivania/cacca3
sed /^$/d /dati/Scrivania/cacca3 > /dati/Scrivania/cacca4
che da come file finale (cacca4) questo:
"file"
"<http://www.gammu.org>"
"Nokia 6230i 03.40"
"Wammu 0.35"
"20111012T212841Z"
"1.05"
1
"pluto"
3331111111
2
"pippo"
3332222222
3
"paperino"
3333333333
Sicuramente so che qualcuno saprà consigliarmi di meglio :-D ( se non
altro nella forma dello script).
Avrei anche una domanda un pò più difficile:
Vorrei trasporre le righe tre a tre in colonne per ottenere un risultato
simile a quello indicato nel mio primo messaggio, ossia:
1 "pluto" 3331111111
2 "pippo" 3332222222
3 "paperino" 3333333333
Ciao Andrea!
tieni presente che awk è molto più potente di come lo hai usato ;)
ci sono tanti modi per fare quello che chiedi; io ho trovato questo:
1. creo un file awk come questo (per sempio bf.awk) e lo rendo eseguibile:
----------------------------------------------------------
#! /usr/bin/awk -f
BEGIN {
FS=","
print "Elenco telefonico"
print "================="
}
{
if ($1 ~ /^Location/ ) printf "%s " , $3
if ($1 ~ /^Entry00Text/ ) printf "%s " , $3
if ($1 ~ /^Entry01Text/ ) printf "%s\n", $3
}
END { print "-------------" }
----------------------------------------------------------
2. gli do in pasto il file csv in questo modo:
sed 's/"//g' nome_file_csv.txt | ./bf.awk
Se poi vuoi salvare il risultato ridirigi semplicemente l'output su file
All'interno del file awk ti puoi tranquillamente sbizzarrire con le
formattazioni (io ho fatto solo un esempio...)
Se hai dubbi su quanto trovi scritto qui chiedi pure... il trucco per
raggruppare più linee su una sola è usare printf invece di print ;)
Ivan