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

Re: cerco aiuto x uno script



MaX wrote:
Il giorno Dec 20, 2004, alle 8:51 PM, Davide Prina ha scritto:

questo è il file di partenza:
<us>hello</us><it>ciao</it><path>/lib/file1</path>
<us>hello</us><it>miao</it><path>/lib/file2</path>
<us>hello</us><it>prrr!</it><path>/lib/file3</path>
<us>year</us><it>anno</it><path>/lib/file4</path>
<us>day</us><it>giorno</it><path>/lib/file5</path>
<us>month</us><it>mese</it><path>/lib/file6</path>
<us>month</us><it>Mese</it><path>/lib/file7</path>
<us>second</us><it>secondi</it><path>/lib/file8</path>


questo dovrebbe essere il risultato:


hello = ciao - path: /lib/file1
hello = miao - path: /lib/file2
hello = prrr! - path /lib/file3
month = mese - path: /lib/file6
month = Mese - path: /lib/file7


e ignora tutte le linee singole come per esempio le linee 4, 5 e 8

questo script qui sotto dovrebbe fare quello che chiedi
Le operazioni che devi fare sono:
1) copiare tutto in un file (es: script.sh)
2) dare i permessi di esecuzione al file
   $ chmod +x script.sh
3) eseguire il file (vuole un file in input, altrimenti aspetta l'input dallo standard input)
   $ ./script.sh miofile.txt

   se vuoi salvarti il risultato su un altro file
   $ ./script.sh miofile.txt > miofile.txt.out



#!/bin/bash

sort $1 > "/tmp/$1.sort"

OldParola=""
OldTrad=""
OldLoca=""
Trovato=0
 for Riga in $(cat "$1.sort")
 {
 NewParola=$(echo $Riga | sed "s/^[^>]*>//" | sed "s/<.*$//")
 NewTrad=$(echo $Riga | sed "s/^[^>]*>[^>]*>[^>]*>//" | sed "s/<.*$//")
NewLoca=$(echo $Riga | sed "s/^[^>]*>[^>]*>[^>]*>[^>]*>[^>]*>//" | sed "s/<.*$//")

 if [[ "$NewParola" == "$OldParola" || $Trovato = 1 ]]; then
  echo "$OldParola = $OldTrad - path: $OldLoca"
 fi

 if [[ "$NewParola" != "$OldParola" ]]; then
   Trovato=0
  else
   Trovato=1
 fi

 OldParola=$NewParola
 OldTrad=$NewTrad
 OldLoca=$NewLoca
 } # end for Riga

if [[ $Trovato = 1 ]]; then
 echo "$OldParola = $OldTrad - path: $OldLoca"
fi



--
Linux User: 302090: http://counter.li.org
Prodotti consigliati:
Sistema operativo: Debian: http://www.it.debian.org
Strumenti per l'ufficio: OpenOffice.org: http://it.openoffice.org
Database: PostgreSQL: http://www.postgres.org
Browser: FireFox: http://texturizer.net/firefox
Client di posta: Thunderbird: http://texturizer.net/thunderbird
Enciclopedia: wikipedia: http://it.wikipedia.org
--
Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa
outlook: non voglio essere invaso da spam



--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f

Sponsor:
Telefona con Email.it Phone Card, tanti minuti di conversazione con il massimo del risparmio, clicca qui
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid&87&d!-12



Reply to: