Problemi con i tick in uno script sh

Alberto Rizzi greenant a fastmail.fm
Gio 19 Nov 2009 22:33:55 CET


Riccardo Torrini ha scritto:
> On Thu, Nov 19, 2009 at 06:45:43AM +0100, Gianmarco Giovannelli wrote:
> 
>>> PS: li ho scritti senza provarli prima  0=)
> 
>> As usual andranno sicuramente bene :-)
> 
> Invece ho fatto (almeno) un errore di st"o"mpa per non passare
> per quello troppo perfettino  :P
> 
> SourceWord=`grep "${i}" ${2} | ewk -F"," '{print $2}'`
> s/ewk/awk/
> 
> 

Grazie per le risposte.
Ieri non avevo le idee ben chiare su come dovessero essere formattati i 
files di input. Ora lo so.

Il file di dizionario Ŕ qualcosa del tipo

Richiesta chiusura ingresso; Infeed close request
Richiesta di arresto in fase; Stop in phase request
Richiesta di velocitÓ arresto in fase; Speed request for in-phase stop
Richiesta di velocitÓ chiusura ingresso; Speed request for infeed close
Richiesta di velocitÓ drenaggio/CIP; Draining/CIP speed request
Richiesta di velocitÓ jog; Jog speed request

Mentre il file da tradurre pu˛ essere qualcosa come

COMMENT,CMD_10,Richiesta chiusura ingresso
ALIAS,CMD_11,Richiesta di velocitÓ chiusura ingresso
TAG,CMD_12,Richiesta di velocitÓ jog

Io dovrei tradurre in inglese il file, usando come base il dizionario. 
Solamente le righe che iniziano con COMMENT, ALIAS, TAG devono essere 
tradotte, le altre (che nn ho riportato) devono rimanere inalterate
Il dizionario non ho idea di quanto possa essere grande, diciamo 5k 
righe, mentre il file da tradurre che ora ho sotto mano Ŕ di 2667 righe.


Io ho pensato ad una cosa simile, ma non Ŕ sicuramente efficiente e per 
ora funziona solo con le righe COMMENT

#!/bin/sh
cp ${2} ${2}.new

SourceWord=`awk -F"," '/COMMENT/ {print $2}' ${2}` 				
for i in $SourceWord
do
	DictWord=`grep "${i}" ${1} |  awk -F"," '{print $2}'`
	sed -I -e 's/'${i}'/'${DictWord}'/' ${2}.new
done



Mi chiedo perchŔ, nell'esempio proposto da Riccardo, concatenare grep 
con awk Ŕ pi¨ veloce di un awk / / ?





Maggiori informazioni sulla lista Varie