Cut (Unix): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: vo:Cut |
completamente rivisto, con diverse precisazioni ed esempi |
||
Riga 1:
{{Titolo minuscolo}}
'''cut''' è un
== Uso ==
La sintassi generale di ''cut'' prevede le tre forme che seguono:
cut -b ''lista'' [-n] [''file1'' [''file2'' ..] ]
cut -c ''lista'' [''file1'' [''file2'' ..] ]
cut -f ''lista'' [-d ''carattere''] [-s] [''file1'' [''file2'' ..] ]
I parametri facoltativi ''file'' indicano i nomi dei file di testo da cui estrarre le informazioni. Se non sono specificati, i dati sono letti dallo ''standard input''. Uno dei parametri può essere un trattino ("<tt>-</tt>") per indicare di leggere in quel punto lo ''standard input''.
Tra le opzioni principali vi sono:
* <tt>-b ''lista''</tt> – Estrae dalla linea i byte i cui indici sono specificati dal parametro ''lista''.
* <tt>-c ''lista''</tt> – Estrae dalla linea i caratteri i cui indici sono specificati dal parametro ''lista''.
* <tt>-f ''lista''</tt> – Estrae dalla linea i campi i cui indici sono specificati dal parametro ''lista''.
* <tt>-d ''carattere''</tt> – Se si estraggono campi tramite l'opzione <tt>-f</tt>, indica il carattere da usare come separatore tra i campi. Il carattere predefinito è il [[carattere di controllo]] ''tab''.
* <tt>-n</tt> – Se si estraggono byte tramite l'opzione <tt>-b</tt> e la codifica del testo in uso richiede più byte per carattere, assicura che le sequenze di byte che rappresentano il primo e/o l'ultimo carattere di una sezione siano estratte per intero.
* <tt>-s</tt> – Se si estraggono campi tramite l'opzione <tt>-f</tt>, indica di escludere le linee che non contengono il carattere separatore (il comportamento predefinito di ''cut'' prevede di riproporre in output tali linee senza modifiche).
Il parametro ''lista'' delle opzioni <tt>-b</tt>, <tt>-c</tt> e <tt>-f</tt> è un elenco di uno o più indici e/o intervalli di indici, separato da virgole ("<tt>,</tt>") o da spazi ("<tt> </tt>"), il quale seleziona all'interno delle linee di dati le sezioni da estrarre. Ciascun elemento dell'elenco può essere:
* un ''indice'' numerico, a partire da 1, che indica il byte, carattere o campo da selezionare;
* un ''intervallo'' di indici nella forma <tt>''min''-''max''</tt> (ad esempio "<tt>3-5</tt>") che seleziona i byte, caratteri o campi compresi tra gli indici ''min'' e ''max'';
* un ''intervallo'' di indici nella forma <tt>''min''-</tt> (ad esempio "<tt>3-</tt>") che seleziona i byte, caratteri o campi a partire dall'indice ''min'' fino al termine della linea;
* un ''intervallo'' di indici nella forma <tt>-''max''</tt> (ad esempio "<tt>-5</tt>") che seleziona i byte, caratteri o campi a partire dall'inizio della linea fino all'indice ''max'';
L'ordine degli elementi nella lista non è rilevante, e nemmeno lo sono eventuali ripetizioni o intersezioni, in quanto le sezioni sono sempre presentate nell'ordine in cui appaiono nelle linee di dati originarie e senza ripetizioni.
==
Estrae il primo ed il terzo campo dal file <tt>/etc/passwd</tt>:
cut -f 1,6 -d : /etc/passwd
Estrae i primi dieci caratteri da ogni linea che giunge dallo ''standard input'':
cut -c -10
Estrae i byte che vanno dal quinto al decimo, il sedicesimo e dal ventesimo in poi di ogni linea del file <tt>prova.txt</tt>:
cut -b 5-10,16,20- prova.txt
== Alternative ==
Le capacità di estrazione di ''cut'' sono alquanto ridotte, il che limita il suo utilizzo ai casi più semplici; esso infatti:
* non permette di riordinare e/o ripetere le sezioni estratte;<ref name="multipass">
Ciò si può ottenere effettuando più passaggi sugli stessi file di input, per produrre file temporanei da unire poi con i comandi [[Join (Unix)|join]] e [[Paste (Unix)|paste]]</ref>
* non permette di estrarre solo parte dei dati delle sezioni indicate;<ref name="multipass"/>
* non permette di specificare come separatore dei campi una ''sequenza'' di spazi (non è ad esempio adatto a estrarre dati dall'output del comando [[Ls (Unix)|ls]]).
Se ciò fosse necessario, si può ricorrere a degli ''[[script]]'' nel [[Awk|linguaggio AWK]], che offrono maggiori possibilità in tal senso.
== Note ==
<references />
== Voci correlate ==
* [[Awk]]
* [[Join (Unix)]]
* [[Paste (Unix)]]
== Collegamenti esterni ==
* {{cita web
|url=http://www.opengroup.org/onlinepubs/000095399/utilities/cut.html
|titolo=cut
|accesso=14-06-2008
|opera=The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition
|lingua=en
}}
* {{cita web
|url=http://www.gnu.org/software/coreutils/manual/html_node/cut-invocation.html
|titolo=cut: Print selected parts of lines
|accesso=14-06-2008
|opera=GNU Coreutils manual
|lingua=en
}}
{{Portale|informatica}}
[[Categoria:Software di sistema]]
[[Categoria:Comandi Unix/Linux]]
[[en:Cut (Unix)]]
|