SisifoCP
Questa utility è stata inizialmente scritta per convertire files di testo (con tabulazioni), in files sequenziali a lunghezza fissa. In seguito sono state introdotte migliorie che consentono ricomposizioni, calcoli, aggiunte e la produzione di un nuovo file di testo non necessariamente a lunghezza fissa. Inoltre l'input può essere a lunghezza fissa, della quale possono essere saltati N bytes iniziali.La sintassi SISIFO consente moltissime riorganizzazioni dei dati con pochissimo sforzo.
USARE: SisifoCP.exe -opt1 value1 -opt2 value2 ... argomenti... -i infile (se omesso stdin) -o outfile (se omesso stdout e non crea .rsz) -s "schema" (se omesso copia attualizzata in->out) puo' essere: "?(...)..." o @nomefile o @nomefile[sez] o @nomefile[sez]item= -tX il separatore dei campi dell'input non e' TAB ma X -q i campi dell'input sono quotati "..." e vanno tolte le quote -fN l'input e' a lunghezza fissa = N -fN+M per saltare i primi M caratteri dell'input fisso +M per saltare i primi M caratteri della riga dell'input -rsz l'output non conterra' CR+LF e verra' creato anche file.RSZ -run niente output ma esecuzione delle righe (comandi) -delifnosize : se outfile size=0 non lo emette (solo con -o outfile) -start "str" : a partire dalla riga che comincia con str (non compresa) -stop "str" : termina con la riga che comincia con str (non compresa) -only "str" : soltanto le righe che cominciano con str -only1 "str" : soltanto la PRIMA riga che comincia con str -?x :il carattere attualizzante passa da ? a x
Esempi:
SisifoCP -i A -s @B -o C -t; -rszLegge il file A, scrive il file C attraverso lo schema presente nell'intero file B; i tabulatori del file A sono punti-e-virgola ";" e deve essere generato un file a lunghezza fissa con il suo descrittore ".RSZ".
SisifoCP -i A -o B ARG1 ARG2Legge il file A e lo scrive nel file B attualizzandone i contenuti secondo la sintassi SISIFO; vengono passati gli argomenti ARG1 e ARG2 che verranno visti come ?(1) e ?(2) della sintassi sisifo o come ?(_ARGS) insieme, separati da TAB.
SisifoCP -i A -o B -s "?(_ARGS ?)" SisifoCP -i A -o B ARG1Equivalenti. Leggono il file A e lo scrivono nel file B attualizzandone i contenuti secondo la sintassi SISIFO.
La prima forma usa lo schema con la RI-attualizzazione di un TAG SISIFO tramite il carattere ? innestato.
La seconda forma esprime argomenti (anche senza usarli).
SisifoCP -i A -o B -f3000+4 -s "?(_args 1:10)?(_args 50:5)"Legge il file A (lunghezza fissa 3000 saltandone i primi 4 bytes) e scrive nel file B alcuni segmenti specificati dopo -s.