CLI scripts
Vari programmini da linea di comando (scripts CLI) in PHP, Bash, ecc.
NAME AND VERSION
dfnfromexif.php v0.2
DESCRIPTION
dfnfromexif.php renames the specified files using as a “template” an exif
tag (“DateTimeOriginal” by default) and/or other parameters.
By default it doesn’t actually rename any file, but only shows the changes it
would make; use option "-g” to actually rename.
SYNOPSIS
dfnfromexif.php [options] <file|path ...>
OPTIONS
-h
Show this help text and exits.
-e <valid extensions list, comma separated>
Consider only files with given extensions.
-d
Show debug info.
-r
Recursevely scan every specified directory.
-t <parameter>
Defines the paramater to build the output filename[s].
“parameter” can be any exif tag (but the script treats “intelligently” only
some of the exif standard tags, see below), or other special paramaters
preceeded by "%".
By default, the script tries and use the exif tag “DateTimeOriginal”.
The tags below are treated “intelligently” by the script:
FileDateTime : ...
DateTime : ...
DateTimeOriginal : ...
DateTimeDigitized : ...
“Special” parameters currently supported:
%fdate : creation date of the file as reported by the filesystem.
-g
By default, the script only shows the changes it would make, without actually
committing them.
This option makes it actually rename the files.
EXAMPLE
dfnfromexif.php -e tiff,jpg -d a.jpg *.tiff *.zzz b/*.jpg c/ -r -t DateTime
Consider in the current directory the file “a.jpg” and all the files with
“tiff” and “zzz” extension (but “zzz” files will be discarded since they are
not included in the allowed extensions list specified with "-e”); consider
also all “jpg” files in “b” , and all (tiff and jpg) files in dir “c” and its
subdirs (since "-r” has been used); show debug info.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
farf.php v0.1
DESCRIZIONE
farf.php traduce in alfabeto farfallino una stringa di testo
in input o una serie di file.
SINTASSI
farf.php [opzioni] [file[s]]
USO
Se non viene specificato alcun file da riga di comando, o se nessuno dei file
specificati da riga di comando e` valido, legge da stdin.
OPZIONI
-d / --defarf
Defarfallinizza invece di farfallinizzare.
-f / --farf
Imposta la stringa di farfallinizzazione.
DEFAULT f, ovviamente.
-v / --debug
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
ESEMPI
$ echo ciao | farf.php
stampera` a schermo “cifiafaofo”
$ echo ciao | farf.php -f p
stampera` a schermo “cipiapaopo”
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
fontsheet.php v0.1
DESCRIZIONE
fontsheet.php crea un file html che mostrera` tutte le font installate su
un sistema linux secondo le opzioni date.
Richiede il programma “fc-list”, che solitamente e` parte del pacchetto
“fontconfig”.
SINTASSI
fontsheet.php [opzioni]
OPZIONI
-t / --text <stringa>
Imposta il testo di esempio.
DEFAULT: The quick brown fox
-s / --size <intero>
Imposta la dimensione del carattere del testo di esempio.
DEFAULT: 16
-v / --variants <varianti>
Imposta in quali “varianti” stampare il testo di esempio per ciascuna font.
Le varianti possibili sono
“r” (“regular”: “tondo”),
“b” (“bold”: “grassetto”),
“i” (“italic”: “corsivo”),
“bi” (“bold+italic”: “grassetto+corsivo”).
Possono essere specificate piu` varianti separandole con una virgola.
Es.: "-v r,bi”: lo script stampa il testo di esempio prima in tondo e poi
in grassetto+corsivo per ogni font.
DEFAULT: r
-o / --ofile <path>
Specifica un file in cui salvare l’output html.
-d / --debug
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
indice.php v0.2
DESCRIZIONE E INTRODUZIONE
indice.php cerca all’interno di un testo (uno o più file pdf, oppure
uno o più file di testo contenenti indicatori di “fine pagina” - vedi più
avanti) i lemmi (stringhe di testo) specificati da riga di comando
o in uno o più file di testo (meglio, perché da file di testo è possibile
impostare ricerche tramite espressioni regolari e utilizzare parametri
avanzati per ciascun lemma), e crea un elenco in cui gli stessi lemmi sono
affiancati dai numeri delle pagine in cui compaiono nel testo. Il programma
può perciò essere utile per creare un indice dei nomi o altri tipi di indici
per una pubblicazione.
La ricerca su file pdf avviene previa “estrazione” automatica del testo
contenuto nel/nei pdf specificato/i tramite il programma esterno “pdftotext”
(vedi il penultimo paragrafo di questa introduzione per dove trovarlo).
In alternativa ai file pdf, usando l’opzione "-t” (vedi sotto) la ricerca
può essere effettuata direttamente su uno o più file di testo convertiti
“a mano” da pdf con “pdftotext” (senza usare la sua opzione "-nopgbrk”),
oppure su un qualunque file di testo al cui interno siano definite delle
“pagine” tramite un carattere o una stringa di caratteri che indichi
univocamente un “fine pagina”. Il carattere o la stringa “di fine pagina”
può essere comunicato/a al programma con l’opzione "-p”, e per default
è il carattere “di fine pagina” usato da “pdftotext” (“form feed”, “\f”).
Se si specificano più file pdf o di testo su cui effettuare la ricerca,
il testo su cui la ricerca sarà effettuata e la successione delle pagine
saranno il risultato dell’accodamento del testo contenuto in ogni file
secondo l’ordine in cui sono stati passati da riga di comando. In altre
parole, se il primo file passato da riga di comando contiene 9 pagine,
la prima pagina del secondo file passato da riga di comando sarà considerata
come la decima del testo completo. E’ inoltre possibile impostare un offset
di pagine, nel caso la prima pagina del primo file non sia la prima del testo
originale.
E’ possibile, con l’opzione "-T” (vedi), creare un elenco in cui per ogni
occorrenza di ogni lemma viene stampato il “contesto” (una parte del testo)
in cui la stessa è stata trovata; all’interno della riga di contesto
l’occorrenza stessa sarà evidenziata. In questo modo sarà possibile
verificare le singole occorrenze di ogni lemma.
E’ possibile, con l’opzione "-r”, specificare il set di caratteri usato
per i lemmi da cercare (quindi anche per il/i file dei lemmi) e per i file
su cui avviene la ricerca, che usa un motore di regexp compatibile con set
di caratteri multibyte.
Il programma richiede le estensioni “iconv” e “mbstring” di php, e, se lo si
vuole usare su file pdf, il programma “pdftotext”, che fa parte della suite
open source e multipiattaforma “xpdf”, scaricabile qui:
http://www.foolabs.com/xpdf/download.html
(tip: in ubuntu jaunty “pdftotext” fa parte del pacchetto “poppler-utils”,
ma anche del pacchetto “xpdf-utis”).
Per una introduzione all’uso delle regexp vedi
http://it.wikipedia.org/wiki/Espressioni_regolari
[FAQ]
Come si comporta il programma rispetto alle occorrenze che vanno a capo
(o, nel caso di espressioni composte, sono “spezzate”) tra colonne o pagine
diverse?
[.... --flows ecc.]
SINTASSI
indice.php [opzioni] <-f <file dei lemmi>|-w <lemma>> <path[s]>
indice.php [opzioni] -V <-f <file dei lemmi>|-w <lemma>>
FILE DI CONFIGURAZIONE
Tutte le opzioni descritte qui sotto possono essere specificate in file
di configurazione, con l’eccezione dell’opzione "-I/--inifile”, che sarà
ignorata. La sintassi da usare nei file di configurazione è la stessa usata
da riga di comando, o quasi: la differenza è che nei file di configurazione
il carattere di raggruppamento di un parametro può essere solo le virgolette
doppie ("), mentre le virgolette singole (’) no; e se si vuole specificare
un carattere di virgolette doppie vero e proprio, bisognerà farlo precedere
da una “\”.
Per il resto, valgono le sequenze di escape della bash più importanti
(“\a” per il carattere “alert”, “\b” per “backspace”, “\e” per “escape”,
“\f” per “form feed”, “\n” per “new line”, “\r” per “carriage return”,
“\t” per “horizontal tab”, “\v” per “vertical tab”, e “\\”
per la “backslash” - “\” - stessa).
Il programma cerca inizialmente il file di configurazione “di sistema”, ovvero
un file “indice.php.ini” nella stessa cartella in cui si trova “indice.php”,
e se lo trova lo legge. E’ possibile inoltre specificare uno o più file
di configurazione aggiuntivi da riga di comando con l’opzione "-I” (vedi).
I file così specificati saranno letti nella successione con cui si presentano
da riga di comando.
FILE DEI LEMMI
I file dei lemmi sono normali file di testo in cui i lemmi da cercare vanno
elencati uno per riga. E’ possibile utilizzare, per la costruzione di un
indice, uno o più file dei lemmi, utilizzando per ciascuno l’opzione "-f”.
Nei file dei lemmi, a differenza che da riga di comando, per ogni lemma
è possibile specificare un’espressione regolare (una espressione di ricerca
particolare, da qui in avanti “regexp”) e alcune opzioni specifiche.
I parametri di ricerca specifici per un lemma possono essere specificati
facendo seguire il lemma stesso da un carattere “tab”, e devono essere
intervallati essi stessi da un “tab”.
La sintassi dei parametri è “parametro:valore”.
I parametri noti sono i seguenti.
“r” (regexp): permette di impostare una specifica regexp per il lemma
(in altre parole, la regexp per la ricerca delle occorrenze del lemma
non sarà costruita automaticamente e verrà invece utilizzata la regexp
esplicitata qui);
“s” (search): può essere impostato a “y” (“yes”) o “n” (“no”),
rispettivamente perché la ricerca delle occorrenze del lemma sia
effettivamente effettuata (default), oppure no (in questo caso
nell’indice sarà mostrato il lemma senza alcuna occorrenza); utile per
eventuali lemmi che rimandino ad altri lemmi (“A vedi: B”);
“c” (case): può essere impostato a “i” o “s”, rispettivamente
per “insensitive” (la ricerca non fa differenza tra maiuscole e minuscole)
e “sensitive” (la ricerca fa differenza tra maiuscole e minuscole);
in entrambi i casi, quando specificato, questo parametro “prevale” sulla
impostazione di default relativa (vedi l’opzione "-C”);
“e” (exclude): permette di specificare una o più pagine che saranno escluse
dalla ricerca delle occorrenze del lemma. Es: “e:123-126,128,140-142"
esclude dalla ricerca per il lemma le pagine dalla 123 alla 126, la 128,
le pagine dalla 140 alla 142.
Qui di seguito alcuni esempi di definizioni di lemmi in un file dei lemmi.
----
Esempio 1:
Entra
Specificando la riga di cui sopra, che non ha opzioni, verranno trovate
tutte le occorrenze della parola “entra”, a prescindere da maiuscole
e minuscole (a meno che non si sia usata l’opzione "-C s” da riga di
comando). Nel dettaglio, il programma costruirà automaticamente la regexp
per la ricerca “\bCiao\b”: il programma “racchiude” tra “\b” (“word
boundaries”) ogni lemma per cui non sia specificata una regexp ad hoc,
per evitare per es. in questo caso che venga trovato anche “entrare”.
Se invece per qualche motivo si volesse che per il lemma “Entra” fosse
indicizzato anche “entrare”, “entrava”, ecc., basterà impostare una regexp
specifica con una riga di questo tipo: “Entra[TAB]r:\bEntra”
(il carattere“tab” viene qui rappresentato con “[TAB]” per convenienza).
Esempio 2:
’Ciao’
Specificando la riga di cui sopra, che non ha opzioni, verranno trovate
tutte le occorrenze della parola “ciao” tra virgolette singole,
a prescindere da maiuscole e minuscole. In questo caso la regexp costruita
automaticamente dal programma sarà "’ciao’". Questo esempio serve
a mostrare una caratterstica dello programma, ovvero il fatto che nella
costruzione automatica della regexp per un lemma per cui non è stata
specificata regexp specifica, quando l’uso dei “\b” (“word boundaries”)
sarebbe ridondante o dannoso gli stessi non vengono usati.
Esempio 3:
Ciao[TAB]c:s[TAB]r:(C|c)iao(?! come va\?)[TAB]e:112,114-116
Specificando la riga di cui sopra (in cui il carattere “tab”
è rappresentato da “[TAB]” per convenienza), per il lemma “Ciao” verrà
utilizzata in modo “case sensitive” la regexp "(C|c)iao(?! come va\?)";
quindi verranno trovati nel testo “Ciao”, “ciao”, ma non “cIAO” ecc.,
e solo se non seguiti da " come va?"; inoltre la ricerca ignorerà
le pagina 112, 114, 115 e 116.
----
Qualsiasi riga vuota nel file dei lemmi sarà ignorata, così come qualsiasi
riga che cominci con il carattere "#". Se si vuole specificare un lemma che
comincia con "#", basterà usare “\#" al posto di "#".
ATTENZIONE: sembra esserci un bug nel motore delle espressioni regolari
di php per cui per es. una ricerca “case insensitive” impostato con una
regexp che utilizzi un “look behind” di questo tipo...
(?<!a|bb|c)d
...ovvero un “look behind” con alternative di diverse lunghezze,
non escluderebbe, per es., la stringa “Ad”. In altre parole, il bug sta
nel fatto che il primo termine dell’alternativa, in un “look behind”
di questo tipo, viene sempre usato in modo “case sensitive”.
Un modo per aggirare questo bug può essere aggiungere un primo termine
di alternativa ininfluente (per es. "(?<!x|a|b|c)d” laddove non si volessero
trovare degli “xd”).
ATTENZIONE: se il set di caratteri usato dal/dai file dei lemmi (che *deve*
essere identico a quello dei file di input) è diverso da utf-8, il set
di caratteri corretto dovrà essere specificato con l’opzione "--rcset”
*prima* di "-f”.
OPZIONI
-t / --textmode
Questa opzione indica al programma che tutti i file su cui effettuare
la ricerca sono file di testo.
Con questa opzione è possibile effettuare la ricerca, invece che su dei pdf,
su dei file di testo convertiti “a mano” da pdf con “pdftotext” (senza usare
la sua opzione "-nopgbrk”), oppure su un qualunque file di testo al cui
interno siano definite delle “pagine” tramite un carattere o una stringa
che definiscano univocamente i “fine pagina”. Il carattere o la stringa
“di fine pagina” utilizzati nei file su cui effettuare la ricerca possono
essere comunicati al programma con l’opzione "-p” (vedi). Il vantaggio dei
file di testo rispetto ai pdf sta nel fatto che possono essere modificati,
editati, “preparati” agevolmente ;-)
-w / --word <stringa>
Specifica un lemma da cercare. Può essere usato più volte per specificare più
lemmi. Nota che per i lemmi specificati con questa opzione non è possibile
specificare i parametri particolari e/o una regexp specifica come invece
è possibile fare nei file dei lemmi (vedi la sezione “FILE DEI LEMMI”).
ATTENZIONE: se il set di caratteri usato dal terminale è diverso da utf-8,
il set di caratteri corretto dovrà essere specificato con l’opzione
"--tcset” *prima* dell’opzione "-w”.
-f / --headwordsfile
Specifica un file dei lemmi, ovvero un file di testo che contiene, su ogni
riga, un lemma, più eventuali parametri specifici per la ricerca delle
occorrenze dello stesso. L’opzione "-f” può essere usata più volte
per specificare più file dei lemmi; eventuali lemmi ripetuti vengono
segnalati e “accorpati” tenendo buono il primo (e quindi i suoi eventuali
parametri).
Per una spiegazione dettagliata della struttura dei file dei lemmi e della
sintassi dei parametri specificabili al loro interno per ogni lemma, vedi
la sezione “FILE DEI LEMMI”.
ATTENZIONE: se il set di caratteri usato dal/dai file dei lemmi (che *deve*
essere identico a quello dei file di input) è diverso da utf-8, il set
di caratteri corretto dovrà essere specificato con l’opzione "--rcset”
*prima* di "-f”.
-s / --startpage <numero>
Specifica il numero di pagina della prima pagina del primo file specificato
da riga di comando. Se per es. la prima pagina del primo file specificato è
la terza del testo reale, dovrai usare "-s 3". Se non specificato, la prima
pagina del primo file specificato sarà considerata la prima del testo reale.
-e / --excludepages <page[s]>
Esclude le pagine specificate dalla ricerca per tutti i lemmi.
Es: "-e 123-126,128,140-142" esclude dalla ricerca le pagine dalla 123 alla
126, la 128, le pagine dalla 140 alla 142. Vedi anche il parametro “e”
specificabile per un singolo lemma, spiegato nella sezione “FILE DEI
LEMMI”.
-C / --casesen
Per default, la ricerca delle occorrenze dei lemmi avviene in modo “case
insensitive”. Specificando questa opzione la ricerca avverrà invece
per default in modo “case sensitive”.
In entrambi i casi, può essere attivata ricerca “case sensitive” o
“case insensitive” su singoli lemmi utilizzando il parametro “c” in un file
dei lemmi (vedi la sezione “FILE DEI LEMMI”).+++
-R / --frepars
Permette di definire manualmente i parametri “globali” (che verranno usati
per tutte le ricerche) delle espressioni regolari. Attenzione: il parametro
“i”, se specificato qui, rende inutile l’uso dell’opzione “globale” "-C”
(vedi sopra) e del parametro “c” (“c:s”, “c:i”) specifico per i singoli
lemmi (vedi la spiegazione dedicata ai parametri specifici nella sezione
“FILE DEI LEMMI”), impostando tutte le ricerche come “case insensitive”.
i - ignora maiusc./minusc.
x - ?ONIG_OPTION_EXTEND?
m - multiline
s - singleline
l - ?ONIG_OPTION_FIND_LONGEST?
n - ?ONIG_OPTION_FIND_NOT_EMPTY?
j - usa la sintassi delle regexp java
u - usa la sintassi delle regexp gnu
g - usa la sintassi delle regexp grep
c - usa la sintassi delle regexp emacs
r - usa la sintassi delle regexp ruby
z - usa la sintassi delle regexp perl
b - usa la sintassi delle regexp posix base
d - usa la sintassi delle regexp posix estese
e - ?eval() resulting code?
I vari parametri possono essere concatenati; nel caso siano mutualmente
esclusivi (come quelli relativi alla sintassi), vale l’ultimo specificato).
DEFAULT: r
-o / --ofile
Specifica un file in cui salvare i risultati invece di mostrarli a schermo.
-F / --fform <html|text>
Specifica il formato in cui l’elenco sarà salvato nel file di salvataggio
(vedi sopra). Può essere “html” o “text”.
DEFAULT: html
-n / --numbas
Stampa soltanto i numeri di pagina per ogni lemma, uno per riga,
e nient’altro (nemmeno il lemma). Quando questa opzione viene utilizzata
le opzioni "-T”, "-m”, "--dontshowsearch” e "--dontshownomatch” vengono
ignorate. Per i lemmi senza alcuna occorrenza sarà stampata la stringa "###".
-P / --pagform <list|series|seqseries>
Specifica il formato in cui saranno mostrati i numeri di pagina. Può essere
“list”, “series” o “seqseries”. “list” mostra tutte le pagine intervallate
da ", " (es.: "12, 13, 14, 20, 23, 24"); “series” funziona come “list” ma
mostra eventuali intervalli come “estremo minore-estremo maggiore”
(es.: "12-14, 20, 23-24"); “seqseries” funziona come “series”
ma se l’intervallo è di 2 pagine utilizza la notazione " s." e se è di 3
pagine utilizza la notazione “ss." (es.: "12 ss., 20 , 23 s.").
DEFAULT: list
--enclose <stringa> <stringa>
Permette di specificiare due stringhe delle quali la prima sarà usata
a precedere e la seconda a seguire ogni lemma nell’indice. Entrambe
le stringhe possono essere specificate vuote (come sono per default),
con ’’ o "".
-T / --tipout
Nell’indice finale stampa anche, per ogni occorrenza di ogni lemma,
il “contesto” (una parte del testo) in cui la stessa si trova, secondo
il “margine” impostabile con l’opzione "-m” (vedi qui sotto). All’interno
di questa stringa di contesto l’occorrenza stessa sarà mostrata evidenziata.
-m / --marg <numero>
Imposta quanti caratteri del testo prima e dopo l’occorrenza vengono
visualizzati per mostrare il contesto di ogni occorrenza se l’opzione "-T”
(vedi qui sopra) è attiva, e/o se si usa la modalità interattiva (vedi
l’opzione "-i”).
Nota che il valore impostato qui è indicativo: il programma taglierà
i contesti di ogni occorrenza all’inizio e alla fine, rispettivamente
all’inizio della prima parola completa e alla fine dell’ultima,
“per difetto” rispetto al valore impostato qui.
DEFAULT: 30
--dontshowsearch
Se questa opzione *non* viene specificata ed è attiva l’opzione "-T”,
sotto ogni lemma sarà mostrata la regexp utilizzata per la ricerca.
--dontshownomatch
Se questa opzione *non* viene specificata ed è attiva l’opzione "-T”,
sotto ogni lemma la cui ricerca non ha prodotto risultati sarà stampato
“NESSUNA OCCORRENZA”, e in testa all’indice sarà mostrato un compendio
dei lemmi per cui non è stata trovata alcuna occorrenza.
-i / --interactive
Modalità interattiva: chiede conferma per ogni occorrenza mostrandone il
contesto secondo l’opzione "-m” (vedi sopra).
-N / --dontshowprog
Non mostra a schermo il progresso della ricerca dei lemmi (o dei “lemmi
composti” - vedi l’opzione "--showcomp”).
--nohyphtrick
Normalmente il programma, nel costruire la regexp di ricerca per un lemma
per cui non sia stata specificata una regexp ad-hoc, sostituisce ogni
trattino "-" che incontra con "-?": il trattino diventa così solo opzionale
e in questo modo si aggira il problema costituito dai trattini che vengono
“mangiati” da “pdftotext” perché coincidono con un “a capo”. In altre
parole, per es., per un lemma “bing-bang” per cui non sia stata impostata
una regexp specifica, viene trovato “bing-bang” ma anche “bingbang”:
in questo modo se “bing-bang” va a capo nel pdf originale proprio dopo
il trattino (“bing-[a capo]bang”), e quindi “pdftotext” lo “ricomporrà"
in “bingbang”, il programma lo troverà ugualmente.
L’opzione “nohyphtrick” permette di disabilitare questa funzione.
-p / --pgrbrk <string>
Permette di specificare il carattere o la stringa di caratteri che definisce
un “fine pagina” nel testo su cui avviene la ricerca. Per default
è impostato al carattere di “fine pagina” usato da “pdftotext”,
il “form-feed” (“\f”).
E’ ovviamente molto sconsigliato cambiare questo default quando si usano
in input dei file pdf o ("-t”) dei file di testo creati con “pdftotext” ;-)
Da bash, mettendo la stringa tra ’"’, è possibile passare a questo
parametro qualsiasi carattere speciale usando la sua sequenza di escape
(“man bash” per + info - cerca per es. “form feed”).
ATTENZIONE: se il set di caratteri usato dal terminale è diverso da utf-8,
il set di caratteri corretto dovrà essere specificato con l’opzione
"--tcset” *prima* dell’opzione "-p”.
--flows
Usando questa opzione il programma identificherà eventuali “flussi” di testo
definiti all’interno del/dei file di testo su cui dovrà effettuare
la ricerca. I “flussi” possono essere definiti all’interno di un file
di testo usando una sintassi a tag molto semplice, e può essere necessario
farlo quando nel testo sono presenti “flussi” di testo che ne “spezzano”
altri. Vedi il manuale per ulteriori informazioni.
--notrimpages
Per default, prima di effettuare la ricerca dei lemmi impostati, il programma
fa del suo meglio ;-) per “comporre” il testo che va a capo tra pagine
diverse (per maggiori dettagli vedi la sezione “CONSIGLI”). [+ dettagli]
Questa opzione disattiva la funzione sopra descritta.
-c / --cleanre <regexp> <subst>
Con questa opzione, ripetibile, è possibile impostare delle sostituzioni che
saranno effettuate sul testo prima della ricerca dei lemmi; in questo modo
sarà possibile “preparare” il testo per la ricerca, per es. eliminando
intestazioni fisse, ecc. (un altro modo per preparare il testo per la
ricerca è quello di lavorare direttamente su file di testo ed editarli
“a mano”, o usando tool esterni come “sed” ecc.).
L’opzione richiede due parametri; il primo dev’essere la regexp
di ricerca, il secondo il pattern di sostituzione, che può contenere (nella
forma “\1", “\2" ecc.) riferimenti a “sub-expressions” definite nella
regexp.
E’ possibile impostare più sostituzioni utilizzando più volte questa
opzione; le sostituzioni saranno effettuate nell’ordine in cui sono
state definite da riga di comando.
Attenzione a non eliminare caratteri o stringhe “di fine pagina” ;-)
(vedi l’opzione "-p”).
--showinput <page[s]>
Mostra a schermo le pagine specificate del testo su cui verrà effettuata
la ricerca, prima e dopo che ha subito le eventuali trasformazioni
“preparatorie” impostate (vedi qui sopra "--notrimpages” e "--cleanre”).
Es: "--showinput 123-126,128,140-142" mostra le pagine dalla 123 alla
126, la 128, dalla 140 alla 142, prima e dopo le eventuali trasformazioni.
-V / --showcomp
A volte, nella costruzione di un indice, si ha un lemma “generico” seguito
da altri lemmi che sono dei suoi “composti particolari”, e la necessità
di cercare il lemma “generico” escludendo però i suoi composti. Per esempio,
si potrebbe avere in un file dei lemmi un lemma “Risotto” seguito
da un lemma “Risotto alla pescatora” e da un lemma “Risotto allo zafferano”,
e si potrebbe volere che il primo lemma, “Risotto”, trovi tutte
le occorrenze di “Risotto” non seguite da “alla pescatora” né da
“allo zafferano”; a questo scopo si potrà usare una regexp specifica per il
lemma “Risotto”.
Utilizzando l’opzione -V/--showcomp, il programma non esegue alcuna ricerca
nel testo (e non richiede perciò che sia specificato alcun testo su cui
effettuarla), ma si limita a identificare e mostrare, raggruppati, eventuali
“lemmi composti” “sparsi” nel/nei file dei lemmi; per es. “risotto”,
“risotto alla pescatora”, “risotto allo zafferano”; oppure “Calabria”,
“Reggio Calabria”.
L’output di questa opzione può essere a schermo, oppure in un file
(vedi "-o”) html o di testo (vedi "-F”).
-r / --rcset <charset>
Specifica il set di caratteri usato per i lemmi da cercare e per i file
su cui sarà effettuata la ricerca.
ATTENZIONE: se il set di caratteri usato dal/dai file dei lemmi (che *deve*
essere identico a quello dell’output di “pdftotext” dai pdf) è diverso
da utf-8, il set di caratteri corretto dovrà essere specificato
con questa opzione *prima* dell’opzione "-f”.
DEFAULT: utf-8
--tcset <charset>
Specifica il set di caratteri utilizzato dal terminale.
ATTENZIONE: se il set di caratteri usato dal terminale è diverso da utf-8,
il set di caratteri corretto dovrà essere specificato con questa opzione
*prima* delle opzioni "-w” e "-p”.
DEFAULT: utf-8
--listcsets
Mostra a schermo una lista dei set di caratteri noti ed esce.
--pdftotextpath <path>
Specifica il percorso dell’esegubile di “pdftotext”.
DEFAULT: “pdftotext”
-h / --help
Mostra questo aiuto ed esce.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
lamefront.php v0.2
DESCRIZIONE
lamefront.php passa a lame tutti i file wav contenuti nelle [directories]
specificate per la conversione in mp3 secondo le opzioni definite, e genera
per ciascuna directory la playlist m3u relativa.
Gli id3 possono essere creati in base al nomefile di origine, definendo un
carattere o una stringa come separatore dei “campi” nel nomefile di input,
e utilizzando come parametro per l’opzione id3 una stringa in formato
"%<numero del campo>".
Se non vengono specificate directories, lo script lavora sulla directory
corrente.
SINTASSI
lamefront.php [opzioni] [directories]
ESEMPI
Si ha una dir1 contenente i file .....
lamefront.php dir1 dir2 --anno_album %2 --titolo_album %3 \
--titolo_traccia %5 --artista_album %1 --artista_traccia %2 \
--numero_traccia %4 --genere_traccia rock --commento bokonon
Converte tutti i file wav nella dir1, utilizzando come ....
OPZIONI ID3
--artista_album <artista dell’album>
--anno_album <anno di uscita dell’album>
--titolo_album <titolo dell’album>
--commento <commento>
--artista_traccia <artista della traccia>
--titolo_traccia <titolo della traccia>
--numero_traccia <numero della traccia>
--genere_traccia <genere della traccia>
OPZIONI GENERICHE
-e, --opzioni_encoding <opzioni di encoding per lame>
Definisce le opzioni per la conversione in mp3 effettuata da lame.
DEFAULT: "-V2 --vbr-new”.
-s, --separatore_input <stringa di separazione>
Definisce la stringa che separa i vari campi nei nomi dei file wav.
DEFAULT: "-".
--separatore_output <stringa di separazione>
Definisce il separatore da usare per separare i campi nei nomifile in output.
DEFAULT: "-".
--usa_spazi_per_id3 <[on]/[off]>
Definisce se convertire gli underscore (“_”) in spazi (" ") per i campi id3.
DEFAULT: “on”
--usa_underscore_per_ofile <[on]/[off]>
Definisce se convertire gli spazi (" ") in underscore (“_”) nei nomifile
di output.
DEFAULT: “on”.
--lista_generi
Mostra una lista dei generi con rispettivo codice numerico, ed esce.
--formato_nomefile_mp3 <formato>
Definisce il formato per i nomifile mp3 in uscita.
DEFAULT: "%artista_album %anno_album %titolo_album %numero_traccia %titolo_traccia”.
--formato_nomefile_m3u <formato>
Definisce il formato per il nomefile della lista m3u.
DEFAULT: "%artista_album %anno_album %titolo_album”.
--formato_nomedir_output <formato>
Definisce il formato per il nome della directory di output in cui saranno
salvati gli mp3 e la playlist; se il parametro "--nomedir_output” non è
specificato, la dir di output verrà creata, secondo il formato definito,
come subdir della dir contenente i wavs; altrimenti verrà creata, secondo
il formato definito, come subdir della dir specificata da "--nomedir_output”.
DEFAULT: "%artista_album %anno_album %titolo_album”.
--nomedir_output <path>
Se specificato, definisce la directory in cui saranno create, secondo
il formato definito da "--formato_nomedir_output”, le subdir in ciascuna
delle quali saranno salvati gli mp3 e la playlist di ciascuna dir passata
al programma come dir contenente wavs; se non specificato (DEFAULT), le subdir
per gli mp3 e la playlist in uscita saranno create come subdir di ciascuna
dir passata al programma come dir contenente wavs.
--usa_carino
Usa un set di opzioni molto carino.
--path_lame <path dell’eseguibile lame>
Definisce il path dell’eseguibile lame da usare.
DEFAULT: “lame”.
-r --ricorsivo
Lavora ricorsivamente su tutte le sottodir di ciascuna dir specificata, in cui
siano presenti dei file wav (NON IMPLEMENTATO).
--converti_charset <[“off“]/[input charset,output charset,<“id3",“m3u”,“fn”>]>
Se “off” (DEFAULT), disabilita la conversione del charset; altrimenti richiede
di definire il charset dell’input, quello da usare in output, e almeno una
“entità" cui la conversione dev’essere applicata, il tutto separato da ",".
Per una lista dei charset disponibili usa l’opzione "--charset_list”.
Le “entità" cui la conversione può essere applicata sono:
“id3": applica la conversione alle tag id3 (v1.x o v2.x);
“m3u”: applica la conversione al contenuto del file playlist;
“fn”: applica la conversione a tutti i nomi di file e directories in uscita.
Esempio: “lamefront.php --converti_charset utf-8,iso-8859-1,id3"
Converte le variabili in input dalla codifica utf-8 a iso-8859-1,
solo per le tag id3.
--lista_charsets
Mostra una lista dei charset disponibili ed esce.
Vedi anche "--converti_charset”.
--debug
Se specificato, mostra alcune informazioni di debug durante l’esecuzione.
-h, --help
Mostra questo aiuto ed esce.
-v, --version
Mostra la versione del programma ed esce.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
modmem.php v0.1
DESCRIZIONE
modmem.php lista i moduli caricati (se viene specificata una
mask con espressione regolare, solo quelli che corrispondono)
con il rispettivo peso in ram e produce un totale dello stesso.
SINTASSI
modmem.php [opzioni] [mask]
OPZIONI
-o / --order <d|dr|a|ar|n>
Specifica in che ordine devono essere listati i moduli.
d: per dimensione in memoria (il piu` pesante in basso)
dr: per dimensione in memoria (il piu` pesante in alto)
a: in ordine alfabetico
ar: in ordine alfabetico invertito
n: senza alcun ordine, come mostrati da lsmod.
DEFAULT: dr
-s / --showdesc
Mostra, oltre al nome e alla memoria occupata, anche una descrizione
dello stesso (come riportata da modinfo).
-d / --debug
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
niceren.php 0.1
SINTASSI
niceren.php <file[s]> [opzioni]
DESCRIZIONE
niceren.php rinomina i file specificati, nelle cartelle
di origine, per la maggiore compatibilita`.
OPZIONI
-r / --rename
Effettua realmente la rinomina.
Per default lo script si limita a mostrarla.
-c / --capfirst
Forza a maiuscolo il primo carattere del nomde file.
-w / --windows
Converte i caratteri non legali sotto windows (\/:*?"<>|).
-a / --ascii
Forza l’utilizzo soli caratteri ASCII per il nuovo filename.
Equivale a "-t ascii”, vedi sotto.
-f / --fromcs
Specifica il charset dei nomifile originali.
DEFAULT: UTF-8
-t / --tocs
Imposta il charset dei nuovi nomifile.
DEFAULT: UTF-8
-l / --listcs
Mostra una lista dei charset noti ed esce.
-h / --help
Mostra questo aiuto ed esce.
-d / --debug
Mostra info di debug durante l’esecuzione.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
par.php v0.2
DESCRIZIONE
par.php formatta uno o piu` file in input secondo le opzioni date.
Puo` effettuare conversione di charset e ha opzioni speciali
per il trattamento di e-mail.
SINTASSI
par.php [opzioni] [file[s]] [opzioni] [file[s]]
Se nessun file e` specificato da linea di comando, par.php legge da stdin.
Il carattere "-" a se` stante indica stdin tra i file da considerare.
Le opzioni in forma breve (quelle precedute da singolo "-") possono essere
concatenate fino a un’eventuale opzione che richieda un parametro.
OPZIONI
-w / --width <numero caratteri>
Imposta la larghezza della “pagina” in caratteri.
Se impostato a 0, mantiene la giustezza originaria e rende ininfluenti
le opzioni "-a”, "-m” e "-b”.
DEFAULT: 72
-c / --currentwidth
Imposta “width” (vedi sopra) alla larghezza attuale dello schermo.
-a / --align <“s”|“d”|“c”|“g”>
Imposta l’allineamento dei paragrafi.
s : allineamento a sinistra
d : allineamento a destra
c : allineamento centrato
g : giustificato
G : giustificato, compresa l’ultima riga del paragrafo
DEFAULT: g
-m / --margin <“s”|“d”> <numero caratteri>
Imposta l’ampiezza in caratteri del margine sinistro o destro. I margini
vegono *sottratti* alla “pagina” impostata con “width”.
DEFAULT: sinistro 0, destro 0
-b / --border <“s”|“d”> <stringa>
Imposta il bordo sinistro o destro della “pagina”, per default nulli.
I bordi vengono *aggiunti* alla “pagina” impostata con “width”.
DEFAULT: sinistro "", destro ""
-r / --rientro <numero caratteri>
Imposta l’ampiezza in caratteri del rientro che sara` applicato a ogni prima
riga di paragrafo (tranne la prima di sezione, come iddio comanda).
DEFAULT: 0
-t / --tabsize <numero caratteri>
par.php converte tutti i caratteri di tabulazione in spazi. Con questa
opzione e` possibile impostare il numero di spazi con cui ogni carattere
di tabulazione sara` sostituito.
DEFAULT: 4
-f / --fcset <nome charset>
Imposta il charset utilizzato per TUTTI i file in input.
DEFAULT: utf-8
-i / --icset <nome charset>
Imposta il charset usato in input (il charset del terminale: puo` influenzare
l’opzione -b).
DEFAULT: utf-8
-o / --ocset <nome charset>
Imposta il charset usato in output.
Se impostato ad “ascii”, verra` effettuata transliterazione (es. una “a”
accentata sara` convertita in “a`”).
DEFAULT: utf-8
-l / --lcsets
Mostra una lista dei charset utilizzabili ed esce.
-n / --nobreak
Non spezza le singole parole piu` lunghe dello spazio “pagina” disponibile.
Utile per es. per evitare che url lunghe vengano spezzate su piu` righe.
Ininfluente se “width” e` uguale 0.
-q / --qmode <modo>
Imposta un trattamento intelligente per le righe “quotate”.
“modo” puo` essere:
u : stessa impostazione di “width” e “align” usata per il resto del testo
n : nessun “width”, nessun “align”
-d / --dbg
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
This is free software, and you are welcome to redistribute it
under certain conditions; see <http://www.gnu.org/licenses/> for details.
NOME E VERSIONE
prpl.php v0.2
DESCRIZIONE
prpl.php effettua sostituzioni nei file indicati secondo i pattern
di ricerca e sostituzione (in standard pcre) specificati. Può chiedere
(opzionalmente) conferma per ogni sostituzione, mostrando le modifiche
evidenziate.
Attenzione: lo script carica l’intero file in una stringa e su questa esegue
le ricerche, perciò sarà necessario usare il modificatore “m” perché “^” e "$"
corrispondano a inizio e fine di ogni riga (vedi anche gli esempi).
Per vedere tutti i modificatori disponibili (alcuni aggiunti rispetto a quelli
di perl):
http://it.php.net/manual/it/reference.pcre.pattern.modifiers.php
SINTASSI
prpl.php [opzioni] <pattern di ricerca> <pattern di sost.> <path[s]>
OPZIONI
-i / --invert
Inverte il funzionamento: la sostituzione viene applicata solo alle parti
che NON corrispondono al pattern di ricerca.
Per ora questa modalità non funziona interattivamente, ma soltanto
se combinata con l’opzione -l o -v (vedi sotto).
-l / --noconfmod
Non chiede conferma di ogni modifica.
-s / --noconfsave
Non chiede conferma del salvataggio delle eventuali modifiche nel file.
-v / --viewonly
Si limita a mostrare a schermo le modifiche che apporterebbe.
-e / --escape
Trasforma le sequenze di escape nel pattern di sostituzione secondo lo
standard del C (\n=new line, \t=tab, ecc.); occhio perché la prima
a effetture sostituzioni sugli argomenti passati può essere bash.
Per verificare come il pattern di sostituzione viene visto “di per sé" dallo
script, si può utilizzare l’opzione "-d” (vedi sotto).
-t / --tcset [nome del charset]
Imposta il charset del terminale. Ha effetto solo “estetico”,
per visualizzare correttamente l’output. Per vedere la lista dei charset
disponibili, usa questa opzione senza argomenti. Il nome del charset
è case insensitive.
DEFAULT: utf-8
-f / --fcset [nome del charset]
Imposta il charset dei file in input (tutti). Ha effetto solo “estetico”,
per visualizzare correttamente l’output. Per vedere la lista dei charset
disponibili, usa questa opzione senza argomenti. Il nome del charset
è case insensitive.
DEFAULT: utf-8
-h / --help
Mostra questo aiuto ed esce.
-d / --debug
Mostra info di debug durante l’esecuzione.
ESEMPI
prpl.php "/costante/" “continuo” pippo.txt
Cerca “costante” e lo sostituisce con continuo in pippo.txt
prpl.php "/costante/i” “continuo” pippo.txt
Cerca “costante” e lo sostituisce con continuo in pippo.txt
Trova anche “Costante”, “cOstante” ecc.
Per info approfondite sulle espressioni regolari “perl compatibili” in php vedi
http://php.net/manual/en/regexp.reference.php (...e dintorni).
NOME E VERSIONE
symlink.bash v0.1
DESCRIZIONE
Crea symlinks ai percorsi passati come argomento in una directory scelta
attraverso il browser di zenity.
SINTASSI
symlink.bash <percorso[i]>
INSTALLAZIONE
Lo script richiede che sul tuo sistema siano installati bash, realpath, fmt e zenity.
È probabilissimo che nel tuo sistema i primi tre siano già installati, siccome
si tratta di programmi base, standard
di quasi tutte le distribuzioni linux; è molto
probabile che sia installato anche zenity; altrimenti li troverai sicuramente tra
i pacchetti disponibili per la tua distribuzione.
Copia il file "symlink.bash" che hai scaricato in una directory tra quelle incluse
nella tua variabile d'ambiente PATH (di solito basta che lo metti in "/usr/local/bin"),
impostalo come eseguibile ("chmod +x [/percorso/di/]symlink.bash") poi crea nel tuo
file manager una "azione personalizzata" che ti consenta di utilizzarlo quando vuoi.
Per esempio, con Thunar (il file manager di default di XFCE), fai "Modifica", "Imposta
azioni personalizzate" e crea una nuova azione. Dalle il nome e la descrizione che vuoi
(per es. "Crea collegamenti", "Crea collegamenti in una cartella a scelta") e specifica
come comando "symlink.bash %F"; se vuoi puoi assegnare all'azione un'icona che verrà
mostrata nel menù; nella scheda "Condizioni di visibilità" metti "*" nella casella
"Schema dei file" e attiva tutte le voci sotto "Appare se la selezione contiene".
Fatto questo pigia "Ok". D'ora in poi, pigiando sopra uno o più file e/o cartelle
selezionati con il tasto destro del mouse, avrai nel menu a comparsa una nuova voce
che ti permetterà di creare collegamenti agli stessi in una cartella a tua scelta
tramite il tuo file browser di default (symlink.bash apre ricorda l'ultima cartella
utilizzata e apre il file browser per la scelta della destinazione sulla stessa).
[ Screenshot ]
NOME E VERSIONE
text2html.php v0.1
DESCRIZIONE
text2html.php converte un file di testo in html secondo le opzioni date.
Se non viene specificato alcun file, legge da stdin.
SINTASSI
text2html.php <filepath[s]> [opzioni]
OPZIONI
-e / --encoding <encoding>
Permette di specificare l’encoding usato dal file di testo.
Gli encoding noti sono: ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252,
KOI8-R, BIG5, GB2312, BIG5-HKSCS, Shift_JIS, EUC-JP.
DEFAULT: utf-8
-b / --onlybr
Converte tutti gli “a capo” in "<br>", invece di utilizzare anche i "<p></p>".
-t / --noemptyatend
Elimina eventuali righe vuote a fine testo.
-n / --nicequotes
Sostituisce tutti i ’ con ’, tutti i " di apertura con “, tutti i "
di chiusura con ”.
-o / --onlynbsp
Sostituisce tutti gli spazi con " ".
-s / --savetofile
Scrive l’output di ciascun file in un file con lo stesso nome ed estensione
".html”.
ATTENZIONE: se il file di output esiste gia` viene sovrascritto.
-d / --dbg
Mostra info di debug.
-h / --help
Mostra questo aiuto ed esce.
NOME E VERSIONE
textdbtool.php 0.1
SINTASSI
textdbtool.php [opzioni] <file[s]> [opzioni]
DESCRIZIONE
textdbtool.php esegue operazioni sui file specificati trattandoli come
file “database” contenenti “record” separati da un determinato carattere.
Puo` filtrare, trimmare, pulire, ordinare i “record” identificati;
puo` rimuovere quelli vuoti o i duplicati. Queste funzioni vengono applicate
dal programma nello stesso ordine con cui sono descritte le “opzioni relative
ai record identificati” piu` sotto.
Nota: textdbtool.php utilizza le “multibyte string functions”
di php per le espressioni regolari, e le sue funzioni “iconv”
per la conversione del testo; e` quindi utilizzabile con file encodati
con gli encoding supportati da *entrambe* le librerie (per vederne una lista
usa "-l”).
OPZIONI GENERALI
-i / --idelim <regex>
<regex> e` l’espressione regolare con cui e` possibile definire
“il separatore” dei “record” nel file. La regex di default e` il carattere
di newline (l’“a capo” unix, “\n”), con cui viene considerata come singolo
“record” ogni singola riga di testo.
-o / --odelim <stringa>
Utilizza <stringa> come separatore dei “record” in output.
DEFAULT: “\\n”
-c / --cdelim <regex>
<regex> e` l’espressione regolare con cui e` possibile definire
“il separatore” dei “campi” di ciascun “record” nel file. La regex
di default e` il carattere di tab (“\t”).
-w / --write
Salva i cambiamenti nei rispettivi file; se non specificato, i cambiamenti
vengono solo mostrati a schermo.
-T / --termcs
Specifica il charset utilizzato dal terminale, quindi anche quello di tutte
le opzioni passate al programma. E` importante soprattutto rispetto alle
opzioni che utilizzano espressioni regolari, e deve precederle sulla riga
di comando (il charset specificato viene tenuto in considerazione soltanto
per le opzioni che seguono questa).
DEFAULT: “utf-8"
-F / --filecs
Specifica il charset utilizzato nel/nei file.
DEFAULT: “utf-8"
-l / --listcs
Mostra a schermo una lista dei charset noti ed esce.
-g / --dbg
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
OPZIONI RELATIVE AI “RECORD” IDENTIFICATI
-r / --regexr <regex>
Rimuove i “record” che corrispondono all’espressione regolare data.
-k / --regexk <regex>
Rimuove i “record” che non corrispondono all’espressione regolare data.
-t / --trim
Trimma i “record” (rimuove tabs, newlines ecc. da inizio e fine “record”).
E` mutualmente esclusivo rispetto a "-p” (vedi sotto).
-p / --purge
Rimuove tabs, newlines ecc. da tutto il “record”.
E` mutualmente esclusivo rispetto a "-t” (vedi sopra).
-b / --noblanks
Rimuove i “record” vuoti.
-d / --nodupes
Rimuove i “record” i duplicati, conservandone solo uno.
-s / --sort
Ordina alfabeticamente i “record”.
-P / --presortres <pattern di ricerca> <pattern di sostituzione>
Prima di effettuare l’ordinamento, applica una sostituzione sui “record”
secondo il pattern di ricerca e quello di sostituzione specificati.
Questa sostituzione e` a uso esclusivo dell’ordinamento, i “record”
non subiscono alcuna sostituzione.
ESEMPIO:
Si da` un file “x.txt”:
--- inizio x.txt ---
aaa
ccc
-bbb
--- fine x.txt ---
Si applica un ordinamento con “textdbtool.php x.txt -s -P ’/^-/’ ’’";
il risultato sara`:
--- inizio risultato ---
aaa
-bbb
ccc
--- fine risultato ---
Se non si fosse usato "-P ’/^-/’ ’’", che elimina (solo per l’ordinamento)
tutti i "-" all’inizio di ogni riga (sostituendoli con niente: "’’"),
il risultato sarebbe stato:
--- inizio risultato ---
-bbb
aaa
ccc
--- fine risultato ---
ATTENZIONE: questa funzione implica l’opzione "-d”.
-I / --presorticonv <charset[”//TRANSLIT“]>
Prima di effettuare l’ordinamento, applica ai “record” una conversione
verso il charset specificato. La conversione e` a uso esclusivo
dell’ordinamento, i “record” non subiscono alcuna conversione.
L’uso piu` utile e` "-I ascii//TRANSLIT” ......
ATTENZIONE: questa funzione implica l’opzione "-d”.
-S / --presorticonvsp <intero>
Se la lunghezza in caratteri del risultato della conversione di charset
effettuata con "-I” (vedi sopra) su un record e` minore di questo valore,
che rappresenta la percentuale rispetto al record originale, viene mostrato
un avviso. Puo` essere utile per verificare che la conversione non abbia
“mangiato” un pezzo del record originale (“iconv” converte “fin dove puo`”).
DEFAULT: 80
NOME E VERSIONE
wrapper.php v0.1
DESCRIZIONE
wrapper.php esegue il comando dato ("-c”) su ciascuno degli argomenti
specificati da riga di comando e/o letti da un file lista ("-l”).
Il comando impostato puo` contenere diverse macro.
SINTASSI
wrapper.php <-c <comando>> [opzioni] <argomento1> [argomento2] [...] [opzioni]
OPZIONI
-m / --modo <modo>
Modo puo` essere...
“files” : considera ogni argomento come un file; esegue controlli
sull’esistenza di ognuno e abilita alcune macro specifiche.
“args” : considera ogni argomento come un argomento; esegue controlli
sull’esistenza di ognuno.
DEFAULT:
-c / --comando <comando>
Imposta il comando da eseguire sugli argomenti dati.
All’interno della stringa “comando” possono essere usate alcune macro.
Macro sempre disponibili:
%a : l’argomento cosi` com’e`
%t : timestamp del momento in cui lo script e` stato lanciato
Macro disponibili solo in modalita` “files”:
%p : path completo del file
%op : path del file
%f : nomefile completo
%fn : nome del file
%fe : solo l’estensione del file
-r / --ricorsivo <espressione regolare per filtraggio dei file>
Se attivata, questa opzione fa si` che il programma utilizzi ricorsivamente
tutte le directory passate come argomento, considerando soltanto i file
che corrispondono all’espressione regolare specificata.
(Per includere qualsiasi percorso usa ".").
-D / --incdir
Per default il programma non considera le directory passate come argomenti,
ma soltanto i file. Questa opzione fa si` che consideri anche le directory.
-l / --lista <file>
Legge gli argomenti da “file” (1 argomento per riga). Gli argomenti letti
da “file” vengono *aggiunti* a eventuali altri passati da riga di comando.
-i / --ichar
Imposta il carattere che identifica una macro. Utile per differenziare,
qualora ce ne fosse bisogno, il carattere che designa le macro
da eventuali caratteri dotati di un significato particolare per il comando
impostato.
DEFAULT: %
-s / --simu
Fa in modo che il programma non esegua realmente il comando ma si limiti
a mostrarlo.
-d / --dbg
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
ESEMPI
$ wrapper.php immagini/*.txt -c “ls -la %p”
Esegue “ls -la” su ciascun file .txt nella cartella “immagini”.
$ wrapper.php immagini/*.png -c “convert -resize 700x700 %p %op/out/%fn.jpg”
Ridimensiona ciascun file .png nella cartella “immagini” e lo salva in .jpg
nella cartella immagini/out.
$ wrapper.php -c “emerge -pv %a” --modo args --lista lista.emerge glibc urxvt
Esegue “emerge -pv " su ognuno degli argomenti listati in “lista.emerge”
e su “glibc” e “urxvt”.
VALORI DI RITORNO
Il programma esce con 0 se nessun comando eseguito e` uscito con valori
diversi da 0, con 1 se rivela errori nei parametri passati, con 2 se almeno
uno dei comandi eseguiti e` uscito con un valore diverso da 0.
NOME E VERSIONE
ws2-to-txt.php v0.1
DESCRIZIONE
ws2-to-txt.php converte file wordstar 2000 in testo semplice.
SINTASSI
ws2-to-txt.php [opzioni] <file_1> [file_2] [file_...] [opzioni]
OPZIONI
-n / --disab-screen-output
Disabilita l’output a schermo del testo convertito.
-f / --save-files
Salva l’output in un file con nome uguale a quello originario + ".txt”.
Se il file esiste gia` e non e` specificata l’opzione -s (vedi sotto),
verra` richiesta conferma della sovrascrittura.
-s / --overwrite
Sovrascrive eventuali file in output gia` esistenti senza chiedere conferma.
-i / --input-cset <charset>
Imposta il charset usato dal file wordstar 2000.
DEFAULT: CP437
-o / --output-cset <charset>
Imposta il charset da usare per il testo in output.
DEFAULT: UTF-8
-l / --list-csets
Mostra una lista dei charsets disponibili ed esce.
-d / --dbg
Mostra info di debug durante l’esecuzione.
-h / --help
Mostra questo aiuto ed esce.
|
|