versione 1.03, 1 settembre 2022
![]() | ![]() |
Michele Liberi mail: mliberi@gmail.com cell: 3485211456 |
Il comando NCgrep verifica se una o più stringhe rispettano un determinato insieme di regole.
In qualche modo ricorda il comando UNIX grep, ma non ragiona per espressioni regolari, bensì applicando in sequenza una o più regole.
È in grado di discriminare, con una sola lettura e su file separati, le stringhe che rispettano le regole e quelle che non le rispettano (opzione -y).
Le stringhe da verificare possono essere lette da un file (opzione -f), oppure passate come argomenti.
Le regole da applicare vengono lette da un file (opzione -r). Per una descrizione completa e dettagliata della sintassi del file delle regole lanciare il comando NCgrep -H.
Un insieme di regole consente di suddividere la stringa da verificare in campi di lunghezza fissa. Su ognuno dei campi, in base al tipo, viene attivato uno specifico controllo.
Un file delle regole può contenere più insiemi di regole, ognuno dei quali ha un nome. La selezione di quale set di regole usare viene fatta con l'opzione -D.
tipo | significato |
---|---|
# | commento |
K | introduce un campo chiave, cioè un campo che concorre a formare la una chiave che deve essere univoca nell'intero insieme delle stringhe da verificare |
N | introduce un campo non chiave |
F | chiude un set di regole e gli assegna un nome |
campo | tipo | controllo |
---|---|---|
A | alfanumerico | nessuno |
N | numerico | composto da cifre decimali ([0-9]) |
L | numerico | composto da cifre decimali con eventuali spazi all'inizio |
C | insieme di caratteri | tutti i caratteri della stringa devono appartenere all'insieme |
D | data | una data valida |
S | stringa | una determinata stringa |
E | variabile d'ambiente | il contenuto di una variabile d'ambiente |
R | espressione regolare | una stringa che corrisponde alla RE |
T | modello | un modello è formato da lettere, ed ogni lettera corrisponde ad un insieme di caratteri |
O | scelta | uno delle stringhe in un insieme definito |
Esempio di file delle regole:
# all lists must be closed by an empty token '' # ------------------------------------------------------------ # Directives: parameters # ............................................................ # F (File) list of RE # S (Set Definition) CHAR charset-definition # K (KeyField) type len name [parameters] # N (Normal Field) type len name [parameters] # type parameters # ............................................................ # A (Alfanum) NONE # N (Numeric) NONE # L (numeric Leading blank allowed) NONE # C (Charset) charset definition # D (Date) format (must contain dd mm yyyy or yy) # E (EnvVar) Environment variable name # S (String) fixed string # R (RegExp) list of RE # T (Template) list of templates # O (Oneof) list of values # ------------------------------------------------------------ SetDef H '[0-9A-F]' SetDef A '[A-Z]' SetDef B '[01]' SetDef C '[abc]' SetDef N '[0-9]' # ------------------------------------------------------------ # TYPE LEN NAME [PARAM] # ------------------------------------------------------------ K L 8 codice N S 1 blank1 ' ' K N 2 esponente N S 1 blank2 ' ' K A 47 commento N S 1 blank3 ' ' K O 3 sigla ' ' ' a' ' a ' 'a ' ' aa' 'a a' ' aa' 'aaa' '' N S 1 blank4 ' ' K D 6 data DDMMYY F TMP '' N N 8 codice N S 1 blank1 ' ' N N 2 esponente N S 1 blank2 ' ' N T 5 template BCzzz CBwww '' N R 4 re A* *A B*B '' N C 8 binary 01 N C 4 HEX 0-9A-F N A 31 filler N D 6 data ddmmyy F TMP1 '' # ------------------------------------------------------------
Per ulteriori informazioni sulle opzioni disponibili lanciare il comando NCgrep -h.