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

[Fwd: consiglio per script su file di testo]



Mi sa che i due messaggi allegati andavano qui...

Ciao

-- 
---------------------------------------------------------------------
|    Marco Nenciarini    | Debian/GNU Linux Developer - Plug Member |
| mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia       |
---------------------------------------------------------------------
Key fingerprint = FED9 69C7 9E67 21F5 7D95  5270 6864 730D F095 E5E4
--- Begin Message ---
On Mon, May 14, 2001 at 11:44:14PM +0200, Matteo wrote:
> 
> Becca: (E' Moltooooo inefficente, ma funge!!)
> 
> #!/bin/bash
> cp file-di-input temp.tmp
> TEXT=$(cat temp.tmp)
> STR=$(echo $TEXT | awk '{print $1 " " $2}')
> 
> while [ $(echo $STR |awk '{print $1}') ]; do
>  echo $STR >> file-out
>  grep -v $(echo $STR | awk '{print$1}') temp.tmp | sort -o temp.tmp 
>  grep -v $(echo $STR | awk '{print$2}') temp.tmp | sort -o temp.tmp
>  TEXT=$(cat temp.tmp)
>  STR=$(echo $TEXT | awk '{print $1 " " $2}')
> done
> 

Non ho visto il messaggio originale, sono io rincoglionito o hai sbagliato
lista?

Comunque in perl si fa tutto prima e meglio:

perl -i.bak -pe 'chomp($_) and s/$/ / if (!$i); $i = !$i' file-da-trattare

prendi file-da-trattare e lo trasforma accorpando le righe a 2 a 2 e salva
l'originale con estensione .bak

Ciao

-- 
---------------------------------------------------------------------
|    Marco Nenciarini    | Debian/GNU Linux Developer - Plug Member |
| mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia       |
---------------------------------------------------------------------
Key fingerprint = FED9 69C7 9E67 21F5 7D95  5270 6864 730D F095 E5E4

Attachment: pgpQosCLIHlNu.pgp
Description: PGP signature


--- End Message ---
--- Begin Message ---
On Mon, 14 May 2001 21:13:55 Sarlak wrote:
> Salve a tutti, 
> non so che comando usare per fare trasformare un file di testo da:
> 
> A1
> A2
> B1
> B2
> C1
> C2
> 
> a:
> 
> A1 A2
> B1 B2
> C1 C2
> 
> Penso di dover usare sed o awk, ma come? Li ho usati per ottenere il file di
> partenza ma non so come impiegarli per accorpare le righe a due a due.
> 
> Grazie.

Becca: (E' Moltooooo inefficente, ma funge!!)

#!/bin/bash
cp file-di-input temp.tmp
TEXT=$(cat temp.tmp)
STR=$(echo $TEXT | awk '{print $1 " " $2}')

while [ $(echo $STR |awk '{print $1}') ]; do
 echo $STR >> file-out
 grep -v $(echo $STR | awk '{print$1}') temp.tmp | sort -o temp.tmp 
 grep -v $(echo $STR | awk '{print$2}') temp.tmp | sort -o temp.tmp
 TEXT=$(cat temp.tmp)
 STR=$(echo $TEXT | awk '{print $1 " " $2}')
done




--- End Message ---

Reply to: