CAT(P)

NAME
cat - concatena e stampa file

SINTASSI

cat [-u][file ...]

DESCRIZIONE

L'utilità cat può leggere file in sequenza e può scrivere i loro contenuti sullo standard output nella stessa sequenza.

OPZIONI

L'utilità cat deve essere conforme al volume Base Definitions di IEEE Std 1003.1-2001, Sezione 12.2, Utility Syntax Guidelines.

Devono essere supportate le seguenti opzioni:

-u  Scrive byte dal file di input allo standard output senza ritardi durante la lettura.

OPERANDI

Devono essere supportati i seguenti operandi:

file
    Il percorso di un file di input. Se non è specificato alcun operando file deve essere usato lo standard input. Se un file è '-' l'utilità cat deve leggere dallo standard input a quel punto nella sequenza. L'utilità cat non deve chiudere e riaprire lo standard input quando viene chiamata in questo modo, ma deve accettare occorrenze multiple di '-' come un operando file.

STDIN

Lo standard input deve essere usato solo se non sono specificati operandi file, o se un operando file è '-' . Vedere la sezione FILE DI INPUT.

FILE DI INPUT

I file di input possono essere di qualunque tipo.

VARIABILI D'AMBIENTE

Le seguenti variabili d'ambiente possono influenzare l'esecuzione di cat:

LANG
    Fornisce un valore di default per le variabili di internazionalizzazione che sono non impostate o nulle. (Vedere il volume Base Definitions di IEEE Std 1003.1-2001, Sezione 8.2, Internationalization Variables per la precedenza delle variabili di internazionalizzazione usate per determinare i valori dele categorie locali).

LC_ALL
    Se impostata ad un valore di stringa non nullo, sovrascrive i valori di tutte le altre variabili di internazionalizzazione.

LC_CTYPE
    Determina la localizzazione per l'interpretazione di sequenze di byte di dati di testo come caratteri (per esempio caratteri a singolo byte e caratteri multi-byte negli argomenti).

LC_MESSAGES
    Determina la localizzazione che deve essere usata per influenzare formato e contenuti dei messaggi di diagnostica scritti sullo standard error.

NLSPATH
    Determina la locazione dei cataloghi messaggi per il processamento di fILC_MESSAGES.

EVENTI ASINCRONI

Default.

STDOUT

Lo standard output deve contenere la sequenza di byte letta dai file di input. Sullo standard output non dovrebbe essere scritto nient'altro.

STDERR

Lo standard error deve essere usato solo per i messaggi di diagnostica.

FILE DI OUTPUT

Nessuno.

DESCRIZIONE ESTESA

Vuoto.

STATO IN USCITA

In uscita devono venire restituiti i seguenti valori:

0   Tutti i file di input sono stati processati con successo.

>0  C'è stato un errore.

CONSEGUENZE DEGLI ERRORI

Default.

Le seguenti sezioni sono informative.

USO DELL'APPLICAZIONE

L'opzione -u ha valore nella prototipazione di letture non bloccanti da FIFO. L'intento è di supportare la seguente sequenza:

    mkfifo foo
    cat -u foo > /dev/tty13 &
    cat -u > foo

Non è specificato se lo standard output è o meno bufferizzato nel caso di default. Questo talvolta è di interesse quando lo standard output è associato ad un terminale, poiché la bufferizzazione può rallentare l'output. La presenza dell'opzione -u garantisce che sia disponibile I/O non bufferizzato. Dipende dall'implementazione de l'utilità cat bufferizza l'output se l'opzione -u non è specificata. Tradizionalmente l'opzione -u è implementata usando l'equivalente della funzione setvbuf() definita nel volume System Interfaces di IEEE Std 1003.1-2001.

ESEMPI

Il seguente comando:

    cat myfile

scrive i contenuti del file myfile sullo standard output.

Il seguente comando:

    cat doc1 doc2 > doc.all

concatena i file doc1 e doc2 e scrive i risultati su doc.all.

Poiché il meccanismo del linguaggio della shell usato per eseguire la redirezione dell'output, un comando come questo:

    cat doc doc.end > doc

provoca la perdita dei dati originali in doc.

Il comando:

    cat start - middle - end > file

quando lo standard input è un terminale, prende due pezzi arbitrari di input dal terminale con una singola invocazione di cat. Notare, tuttavia, che se lo standard input è un file regolare, questo sarà equivalente al comando:

    cat start - middle /dev/null end > file

poiché l'intero contenuto del file sarà consumato da cat la prima volta che '-' è stato usato come operando file e una condizione end-of-file è stata individuata immediatamente quando '-' è stato referenziato la seconda volta.

LOGICA

Versioni storiche dell'utilità cat includono le opzioni -e, -t, e -v, che permettono terminazioni di linea, <tab> e caratteri invisibili, rispettivamente, per essere resi visibili sull'output. Gli sviluppatori dello standard hanno omesso queste opzioni perché esse forniscono un grado di controllo troppo fine su ciò che viene reso visibile, e un output simile può essere ottenuto usando un comando come:

    sed -n -e 's/$/$/' -e l pathname

L'opzione -s è stata omessa perché corrisponde a differenti funzioni in sistemi BSD e System V. L'opzione BSD -s per comprimere linee vuote può essere soddisfatta dallo script di shell mostrato nel seguente esempio:

    sed -n '
    # Scrive linee non vuote.
    /./   {
          p
          d
          }
    # Scrive una singola linea vuota, quindi cerca altre linee vuote.
    /^$/  p
    # Legge la linea successiva, scarta il controllo <newline> (lina vuota),
    # e cerca altre linee vuote.
    :Empty
    /^$/  {
          N
          s/.//
          b Empty
          }
    # Scrive la linea non vuota prima di tornare a cercare
    # la prima in un insieme di linee vuote.
          p

L'opzione System V -s per non mostrare i messaggi di errore può essere soddisfatta redirigendo lo standard error. Notare che la documentazione BSD per cat usa il termine "blank line" per indicare la stessa cosa del POSIX "empty line'': una linea contenente solo un carattere <newline>.

L'opzione BSD -n è stata omessa perché funzionalità simili possono essere ottenute dall'opzione -n dell'utilità pr.

DIREZIONI FUTURE

Vuoto.

VEDERE ANCHE

more , il volume System Interfaces di IEEE Std 1003.1-2001, setvbuf()

COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .