|
|
02 Febbraio 2020 |
Postato da: AMG_Novice_Usr |
Confrontare (riconoscere se uguali o diversi) 2 files testuali da uno script di AmigaDOS |
|
Avrei bisogno di fare una cosa, almeno in teoria, molto semplice:
ho due files testuali, creati con ED, diciamo "testo1" e "testo2".
Entrambi nel path:
sys:miei_docs
Il file "testo1" ospita una stringa ASCII siffatta:
abc
Il file "testo2" ospita una stringa ASCII siffatta:
abc
(per inciso: non esiste il quarto carattere per nessuno dei 2 files, intendo che non ho premuto ENTER come quarto carattere,
quindi non dovrei avere il carattere LF = LineFeed = ASCII 10 = 0x0A
ciascun file ha quei 3 caratteri, punto e basta).
Quindi i 2 files sono identici.
Adesso mi faccio uno script in AmigaDOS che dovrebbe fare una cosa molto semplice, ossia verificare se i 2 files in questione
sono identici oppure no
io pensavo che funzionasse in questo modo:
if exists sys:miei_docs/testo1
if exists sys:miei_docs/testo2
echo "i due files esistono
confrontiamoli"
if sys:miei_docs/testo1 EQ sys:miei_docs/testo2 [val]
echo "UGUALI"
else
echo "NON uguali"
endif
endif
endif
Il risultato stampato da AmigaDOS a video, su CLI/Shell, è sempre "NON uguali" (a volte non ho messo il parametro val, a volte si, ad ogni
modo mi sembra che la cosa non stia funzionando).
Forse perché funziona così:
IF stringa1 (oppure valore numerico 1) EQ stringa2 (oppure valore numerico 2)
le 2 stringhe (cioè i 2 paths) sono diversi, ergo "NON uguali"
Sapete come realizzare questo mero confronto in AmigaDOS, fra 2 files testuali, e capire se sono uguali o diversi?
Ho provato anche altri approcci (tentativi patetici, che si fanno quando non sai che pesci prendere), come ad esempio copiare ciascun
file suddetto su un file di comodo in ram:env, chiaramente dopo aver creato dei files / variabili di ambiente del tipo:
setenv file_di_appoggio1 sys:c/ed
setenv file_di_appoggio2 sys:c/ed
e poi fare il confronto con IF tra "file_di_appoggio1" e "file_di_appoggio2"
ovviamente nulla di buono!
Ho anche fantasticato nel modo seguente (chiedo scusa ad AmigaDOS per essermi inventato sintassi nuove ...):
if (type >nil: sys:miei_docs/testo1) EQ (type >nil: sys:miei_docs/testo2)
echo "UGUALI"
else
echo "NON uguali"
endif
Peggio ancora: AmigaDOS si arrabbia, dicendomi: wrong parameters!
Avevo pensato a questa cosa perché con type (l'equivalente Amiga di "cat" in Linux) <un file> dovrei avere, come ritorno, la stringa ASCII contenuta nel file, poi tale stringa l'avrei indirizzata non sullo standard-output, ovvero CLI-Shell, ma nel nulla, questo solo per non vederla a video, e poi avrebbe dovuto essere:
IF "abc" EQ "abc" -> UGUALI
E invece niente da fare!
Grazie in anticipo!
Modificato il 02/02/2020 alle ore 18:04:44
|
|
Utenti Online |
|
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 2 registrati - Kyle - braian -
e 15 non registrati
|
|
|
Benvenuto all'ultimo utente registrato: zulu |
|
|
Buon Compleanno a Hannibal - |
|
|
|