Visualisation de données

Consultation de données, création de fichier : cat

Outre la consultation de données, voici quelques exemples d'utilisation de la commande cat.

Syntaxe

cat [options] [fichiers]
Principales options
-e     Affiche le symbole "$" à la fin de chaque ligne
-t     Affiche le symbole "^I" (i majuscule) à chaque tabulation
-v     Matérialise les caractères non affichables

Exemples

Quand la commande cat ne reçoit pas de fichier en argument, elle affiche sur la sortie standard les données saisies sur l'entrée standard.

$ cat
ceci est un test     # Texte saisi au clavier sur l'entrée standard
ceci est un test     # Texte afficher automatiquement sur la sortie standard
^d
$

Ce qui est saisi sur l'entrée standard peut être enregistré dans un fichier

$ cat > fic1
ceci est un test
^d
$ cat fic1
ceci est un test
$

cat peut également concaténer des fichiers

$ cat fic1
ceci est un test
$ cat fic2
ceci est un autre test
$ cat fic1 fic2 > fic3
$ cat fic3
ceci est un test
ceci est un autre test
$

L'option -t permet de visualiser les tabulations. Celles-ci sont matérialisées par les caractères "^I" (i majuscule)

$ cat fic4
ceci    est     un      test
$ cat -t fic4
ceci^Iest^Iun^Itest
$

L'option -e permet de visualiser les fins de ligne. Celles-ci sont matérialisées par le symbole "$"

$ cat -e fic4
ceci    est     un      test$
$

L'option -A permet de visualiser tous les caractères non affichables

$ cat -A fic4
ceci^Iest^Iun^Itest$
$

Etiquettes: 

Valeur des octets d'un flux de données : od

La commande od permet de visualiser la valeur de chaque octet d'un fichier texte ou binaire. L'option -c permet une interprétation octet par octet. Il est ainsi possible de voir de manière exacte le contenu du fichier, de détecter l'emplacement des espaces, tabulations et caractères de sauts de ligne (CR, LF ou CR LF).

Avec od, les tabulations sont représentées par \t, les espaces par un espace, le caractère LF par \n

Exemple

$ cat fic5
ceci est un     test
et un   autre test
$ od -c fic5
0000000   c   e   c   i       e   s   t       u   n  \t   t   e   s   t
0000020  \n   e   t       u   n      \t   a   u   t   r   e       t   e
0000040   s   t  \t  \n
0000044
$

La colonne de gauche représente la position du premier caractère de la ligne dans le fichier, exprimée en octal.

Etiquettes: 

Filtrage de lignes : grep

La commande grep recherche une chaine de caractères dans un ou plusieurs fichiers textes et affiche à l'écran les lignes contenant cette chaine. La chaine recherchée est matérialisée par une expression régulière basique ERb (défaut) ou étendue ERe grâce à l'option -E.

Syntaxe

grep [options] expreg [fichiers...]
grep [options] -e expreg1 -e expreg2 [fichiers...]
grep [options] -f fichier_expreg [fichiers...]
Principales options :
-c affiche le nombre de lignes trouvées
-e permet de spécifier plusieurs expressions régulières
-E permet d'utiliser les ERe
-f permet de lire les expressions régulières à partir d'un fichier
-F permet de ne pas interpréter le motif de recherche comme une expression régulière
-i permet une recherche insensible à la casse
-l permet de seulement afficher les noms des fichiers contenant l'expression régulière recherchée
-n permet de numéroter les lignes trouvées
-q permet d'effectuer une recherche sans afficher le résultat à l'écran
-v permet une recherche ne contenant pas l'expression régulière
-w l'expression recherchée doit correspondre à un mot entier
-x l'expression recherchée doit correspondre à une ligne entière

Exemple

Utilisation du fichier depts2012.txt pour les exemples

$ cat depts2012.txt
REGION  DEP     CHEFLIEU        TNCC    NCC     NCCENR
82      01      01053   5       AIN     Ain
22      02      02408   5       AISNE   Aisne
83      03      03190   5       ALLIER  Allier
93      04      04070   4       ALPES-DE-HAUTE-PROVENCE Alpes-de-Haute-Provence
93      05      05061   4       HAUTES-ALPES    Hautes-Alpes
93      06      06088   4       ALPES-MARITIMES Alpes-Maritimes
82      07      07186   5       ARDECHE Ardèche
21      08      08105   4       ARDENNES        Ardennes
73      09      09122   5       ARIEGE  Ariège
21      10      10387   5       AUBE    Aube
91      11      11069   5       AUDE    Aude
73      12      12202   5       AVEYRON Aveyron
93      13      13055   4       BOUCHES-DU-RHONE        Bouches-du-Rhône
25      14      14118   2       CALVADOS        Calvados
83      15      15014   2       CANTAL  Cantal
54      16      16015   3       CHARENTE        Charente
54      17      17300   3       CHARENTE-MARITIME       Charente-Maritime
24      18      18033   2       CHER    Cher
74      19      19272   3       CORREZE Corrèze
94      2A      2A004   3       CORSE-DU-SUD    Corse-du-Sud
94      2B      2B033   3       HAUTE-CORSE     Haute-Corse
26      21      21231   3       COTE-D'OR       Côte-d'Or
53      22      22278   4       COTES-D'ARMOR   Côtes-d'Armor
74      23      23096   3       CREUSE  Creuse
72      24      24322   3       DORDOGNE        Dordogne
43      25      25056   2       DOUBS   Doubs
82      26      26362   3       DROME   Drôme
23      27      27229   5       EURE    Eure
24      28      28085   1       EURE-ET-LOIR    Eure-et-Loir
53      29      29232   2       FINISTERE       Finistère
91      30      30189   2       GARD    Gard
73      31      31555   3       HAUTE-GARONNE   Haute-Garonne
73      32      32013   2       GERS    Gers
72      33      33063   3       GIRONDE Gironde
91      34      34172   5       HERAULT Hérault
53      35      35238   1       ILLE-ET-VILAINE Ille-et-Vilaine
24      36      36044   5       INDRE   Indre
24      37      37261   1       INDRE-ET-LOIRE  Indre-et-Loire
82      38      38185   5       ISERE   Isère
43      39      39300   2       JURA    Jura
72      40      40192   4       LANDES  Landes
24      41      41018   0       LOIR-ET-CHER    Loir-et-Cher
82      42      42218   3       LOIRE   Loire
83      43      43157   3       HAUTE-LOIRE     Haute-Loire
52      44      44109   3       LOIRE-ATLANTIQUE        Loire-Atlantique
24      45      45234   2       LOIRET  Loiret
73      46      46042   2       LOT     Lot
72      47      47001   0       LOT-ET-GARONNE  Lot-et-Garonne
91      48      48095   3       LOZERE  Lozère
52      49      49007   0       MAINE-ET-LOIRE  Maine-et-Loire
25      50      50502   3       MANCHE  Manche
21      51      51108   3       MARNE   Marne
21      52      52121   3       HAUTE-MARNE     Haute-Marne
52      53      53130   3       MAYENNE Mayenne
41      54      54395   0       MEURTHE-ET-MOSELLE      Meurthe-et-Moselle
41      55      55029   3       MEUSE   Meuse
53      56      56260   2       MORBIHAN        Morbihan
41      57      57463   3       MOSELLE Moselle
26      58      58194   3       NIEVRE  Nièvre
31      59      59350   2       NORD    Nord
22      60      60057   5       OISE    Oise
25      61      61001   5       ORNE    Orne
31      62      62041   2       PAS-DE-CALAIS   Pas-de-Calais
83      63      63113   2       PUY-DE-DOME     Puy-de-Dôme
72      64      64445   4       PYRENEES-ATLANTIQUES    Pyrénées-Atlantiques
73      65      65440   4       HAUTES-PYRENEES Hautes-Pyrénées
91      66      66136   4       PYRENEES-ORIENTALES     Pyrénées-Orientales
42      67      67482   2       BAS-RHIN        Bas-Rhin
42      68      68066   2       HAUT-RHIN       Haut-Rhin
82      69      69123   2       RHONE   Rhône
43      70      70550   3       HAUTE-SAONE     Haute-Saône
26      71      71270   0       SAONE-ET-LOIRE  Saône-et-Loire
52      72      72181   3       SARTHE  Sarthe
82      73      73065   3       SAVOIE  Savoie
82      74      74010   3       HAUTE-SAVOIE    Haute-Savoie
11      75      75056   0       PARIS   Paris
23      76      76540   3       SEINE-MARITIME  Seine-Maritime
11      77      77288   0       SEINE-ET-MARNE  Seine-et-Marne
11      78      78646   4       YVELINES        Yvelines
54      79      79191   4       DEUX-SEVRES     Deux-Sèvres
22      80      80021   3       SOMME   Somme
73      81      81004   2       TARN    Tarn
73      82      82121   0       TARN-ET-GARONNE Tarn-et-Garonne
93      83      83137   2       VAR     Var
93      84      84007   0       VAUCLUSE        Vaucluse
52      85      85191   3       VENDEE  Vendée
54      86      86194   3       VIENNE  Vienne
74      87      87085   3       HAUTE-VIENNE    Haute-Vienne
41      88      88160   4       VOSGES  Vosges
26      89      89024   5       YONNE   Yonne
43      90      90010   0       TERRITOIRE_DE_BELFORT   Territoire de Belfort
11      91      91228   5       ESSONNE Essonne
11      92      92050   4       HAUTS-DE-SEINE  Hauts-de-Seine
11      93      93008   3       SEINE-SAINT-DENIS       Seine-Saint-Denis
11      94      94028   2       VAL-DE-MARNE    Val-de-Marne
11      95      95500   2       VAL-D'OISE      Val-d'Oise
01      971     97105   3       GUADELOUPE      Guadeloupe
02      972     97209   3       MARTINIQUE      Martinique
03      973     97302   3       GUYANE  Guyane
04      974     97411   0       LA_REUNION      La Réunion
06      976     97608   0       MAYOTTE Mayotte
$

Afficher la ligne contenant 85191

$ grep 85191 depts2012.txt
52      85      85191   3       VENDEE  Vendée
$

Utilisation d'une ERe et d'une recherche insensible à la casse

$ grep -E -i '(paris|vosges)' depts2012.txt
11      75      75056   0       PARIS   Paris
41      88      88160   4       VOSGES  Vosges
$

Afficher les lignes ne commençant pas par le chiffre 9

$ grep -v '^9' depts2012.txt
REGION  DEP     CHEFLIEU        TNCC    NCC     NCCENR
82      01      01053   5       AIN     Ain
22      02      02408   5       AISNE   Aisne
83      03      03190   5       ALLIER  Allier
82      07      07186   5       ARDECHE Ardèche
21      08      08105   4       ARDENNES        Ardennes
73      09      09122   5       ARIEGE  Ariège
21      10      10387   5       AUBE    Aube
73      12      12202   5       AVEYRON Aveyron
25      14      14118   2       CALVADOS        Calvados
83      15      15014   2       CANTAL  Cantal
54      16      16015   3       CHARENTE        Charente
54      17      17300   3       CHARENTE-MARITIME       Charente-Maritime
24      18      18033   2       CHER    Cher
74      19      19272   3       CORREZE Corrèze
26      21      21231   3       COTE-D'OR       Côte-d'Or
53      22      22278   4       COTES-D'ARMOR   Côtes-d'Armor
74      23      23096   3       CREUSE  Creuse
72      24      24322   3       DORDOGNE        Dordogne
43      25      25056   2       DOUBS   Doubs
82      26      26362   3       DROME   Drôme
23      27      27229   5       EURE    Eure
24      28      28085   1       EURE-ET-LOIR    Eure-et-Loir
53      29      29232   2       FINISTERE       Finistère
73      31      31555   3       HAUTE-GARONNE   Haute-Garonne
73      32      32013   2       GERS    Gers
72      33      33063   3       GIRONDE Gironde
53      35      35238   1       ILLE-ET-VILAINE Ille-et-Vilaine
24      36      36044   5       INDRE   Indre
24      37      37261   1       INDRE-ET-LOIRE  Indre-et-Loire
82      38      38185   5       ISERE   Isère
43      39      39300   2       JURA    Jura
72      40      40192   4       LANDES  Landes
24      41      41018   0       LOIR-ET-CHER    Loir-et-Cher
82      42      42218   3       LOIRE   Loire
83      43      43157   3       HAUTE-LOIRE     Haute-Loire
52      44      44109   3       LOIRE-ATLANTIQUE        Loire-Atlantique
24      45      45234   2       LOIRET  Loiret
73      46      46042   2       LOT     Lot
72      47      47001   0       LOT-ET-GARONNE  Lot-et-Garonne
52      49      49007   0       MAINE-ET-LOIRE  Maine-et-Loire
25      50      50502   3       MANCHE  Manche
21      51      51108   3       MARNE   Marne
21      52      52121   3       HAUTE-MARNE     Haute-Marne
52      53      53130   3       MAYENNE Mayenne
41      54      54395   0       MEURTHE-ET-MOSELLE      Meurthe-et-Moselle
41      55      55029   3       MEUSE   Meuse
53      56      56260   2       MORBIHAN        Morbihan
41      57      57463   3       MOSELLE Moselle
26      58      58194   3       NIEVRE  Nièvre
31      59      59350   2       NORD    Nord
22      60      60057   5       OISE    Oise
25      61      61001   5       ORNE    Orne
31      62      62041   2       PAS-DE-CALAIS   Pas-de-Calais
83      63      63113   2       PUY-DE-DOME     Puy-de-Dôme
72      64      64445   4       PYRENEES-ATLANTIQUES    Pyrénées-Atlantiques
73      65      65440   4       HAUTES-PYRENEES Hautes-Pyrénées
42      67      67482   2       BAS-RHIN        Bas-Rhin
42      68      68066   2       HAUT-RHIN       Haut-Rhin
82      69      69123   2       RHONE   Rhône
43      70      70550   3       HAUTE-SAONE     Haute-Saône
26      71      71270   0       SAONE-ET-LOIRE  Saône-et-Loire
52      72      72181   3       SARTHE  Sarthe
82      73      73065   3       SAVOIE  Savoie
82      74      74010   3       HAUTE-SAVOIE    Haute-Savoie
11      75      75056   0       PARIS   Paris
23      76      76540   3       SEINE-MARITIME  Seine-Maritime
11      77      77288   0       SEINE-ET-MARNE  Seine-et-Marne
11      78      78646   4       YVELINES        Yvelines
54      79      79191   4       DEUX-SEVRES     Deux-Sèvres
22      80      80021   3       SOMME   Somme
73      81      81004   2       TARN    Tarn
73      82      82121   0       TARN-ET-GARONNE Tarn-et-Garonne
52      85      85191   3       VENDEE  Vendée
54      86      86194   3       VIENNE  Vienne
74      87      87085   3       HAUTE-VIENNE    Haute-Vienne
41      88      88160   4       VOSGES  Vosges
26      89      89024   5       YONNE   Yonne
43      90      90010   0       TERRITOIRE_DE_BELFORT   Territoire de Belfort
11      91      91228   5       ESSONNE Essonne
11      92      92050   4       HAUTS-DE-SEINE  Hauts-de-Seine
11      93      93008   3       SEINE-SAINT-DENIS       Seine-Saint-Denis
11      94      94028   2       VAL-DE-MARNE    Val-de-Marne
11      95      95500   2       VAL-D'OISE      Val-d'Oise
01      971     97105   3       GUADELOUPE      Guadeloupe
02      972     97209   3       MARTINIQUE      Martinique
03      973     97302   3       GUYANE  Guyane
04      974     97411   0       LA_REUNION      La Réunion
06      976     97608   0       MAYOTTE Mayotte
$

Afficher les lignes commençant par un 0 ou se terminant par un s

$ grep -e '^0' -e 's$' depts2012.txt
93      05      05061   4       HAUTES-ALPES    Hautes-Alpes
93      06      06088   4       ALPES-MARITIMES Alpes-Maritimes
21      08      08105   4       ARDENNES        Ardennes
25      14      14118   2       CALVADOS        Calvados
43      25      25056   2       DOUBS   Doubs
73      32      32013   2       GERS    Gers
72      40      40192   4       LANDES  Landes
31      62      62041   2       PAS-DE-CALAIS   Pas-de-Calais
72      64      64445   4       PYRENEES-ATLANTIQUES    Pyrénées-Atlantiques
73      65      65440   4       HAUTES-PYRENEES Hautes-Pyrénées
91      66      66136   4       PYRENEES-ORIENTALES     Pyrénées-Orientales
11      75      75056   0       PARIS   Paris
11      78      78646   4       YVELINES        Yvelines
54      79      79191   4       DEUX-SEVRES     Deux-Sèvres
41      88      88160   4       VOSGES  Vosges
11      93      93008   3       SEINE-SAINT-DENIS       Seine-Saint-Denis
01      971     97105   3       GUADELOUPE      Guadeloupe
02      972     97209   3       MARTINIQUE      Martinique
03      973     97302   3       GUYANE  Guyane
04      974     97411   0       LA_REUNION      La Réunion
06      976     97608   0       MAYOTTE Mayotte
$

Afficher et numéroter les lignes commençant par 11

$ grep -n '^11' depts2012.txt
77:11   75      75056   0       PARIS   Paris
79:11   77      77288   0       SEINE-ET-MARNE  Seine-et-Marne
80:11   78      78646   4       YVELINES        Yvelines
93:11   91      91228   5       ESSONNE Essonne
94:11   92      92050   4       HAUTS-DE-SEINE  Hauts-de-Seine
95:11   93      93008   3       SEINE-SAINT-DENIS       Seine-Saint-Denis
96:11   94      94028   2       VAL-DE-MARNE    Val-de-Marne
97:11   95      95500   2       VAL-D'OISE      Val-d'Oise
$

Effectuer une recherche sans afficher le résultat. Afficher le code de retour de la commande pour vérifier l'état de la recherche.

$ grep -q '^11' depts2012.txt
$ echo $?
0
$

Afficher seulement le nombre de lignes trouvées

$ grep -c -e '^0' -e 's$' depts2012.txt
21
$

Rechercher un mot exact

$ grep COTE depts2012.txt # Sans l'option -w 2 lignes sont affichées
26      21      21231   3       COTE-D'OR       Côte-d'Or
53      22      22278   4       COTES-D'ARMOR   Côtes-d'Armor
$ grep -w COTE depts2012.txt # Avec l'option -w seule la ligne contenant le mot COTE s'affiche
26      21      21231   3       COTE-D'OR       Côte-d'Or
$

Afficher les lignes contenant au moins 2 caractères. Utilisation du fichier fic7 en exemple.

$ cat fic7
erytert
e
er
..
uhy
2
e_
34
546
$ grep '..' fic7
erytert
er
..
uhy
e_
34
546
$

Ne pas interpréter le motif comme une expression régulière.

$ grep -F '..' fic7
..
$

Rechercher les lignes ne contenant que des chiffres. Utilisation d'une ERe.

$ grep -E -x '[0-9]+' fic7 # Avec l'option -x
2
34
546
$ grep -E '^[0-9]+$' fic7 # Même résultat mais sans l'option -x
2
34
546
$

Utiliser un fichier pour rechercher les expressions régulières

$ cat rech.er
# Rechercher les lignes se terminant par la lettre t
t$
# Rechercher les lignes contenant uniquement des chiffres
^[0-9]+$
$ grep -E -f rech.er fic7
erytert
2
34
546
$

Utiliser grep derrière un tube pour rechercher un processus particulier.

$ ps -ef | grep apache2
root       302     1  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
www-data   351   302  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
www-data   352   302  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
root      3783  3105  0 14:10 pts/0    00:00:00 grep --color=always apache2
$

Dans ce cas, la commande grep apparait également. L'utilisation de 2 tubes est donc nécessaire.

$ ps -ef | grep apache2 | grep -v grep # On demande à grep de ne pas afficher "grep"
root       302     1  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
www-data   351   302  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
www-data   352   302  0 06:18 ?        00:00:00 /usr/sbin/apache2 -k start
$

Etiquettes: 

Dernières lignes d'un flux de données : tail

La commande tail permet d'afficher, par défaut, les 10 dernières lignes d'un flux de données. Cette commande est souvent utilisée pour afficher les dernières lignes d'un fichier de log.

Syntaxe

tail [options] [fichiers ...]
Principales fonctions :
-f Affiche en temps réel les ajouts en fin de fichier
-n Affiche les n dernières lignes indiquées
-n +x Affiche à partir de la ligne x jusqu'à la fin du fichier

Exemples

Afficher les 5 dernières lignes du fichier /var/log/messages

$ tail -n 5 /var/log/messages # Utilisation de -n 5
May 18 14:09:12 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="287" x-info="http://www.rsyslog.com"] (re)start
May 18 15:26:36 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 15:26:36 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
May 19 06:18:39 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 19 06:18:39 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
$ tail -5 /var/log/messages # Identique mais en indiquant seulement -5
May 18 14:09:12 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="287" x-info="http://www.rsyslog.com"] (re)start
May 18 15:26:36 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 15:26:36 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
May 19 06:18:39 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 19 06:18:39 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
$

Afficher à partir de la ligne 9

$ tail -n +9 /var/log/messages
May 18 12:21:34 kernel: Kernel logging (proc) stopped.
May 18 12:21:34 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] exiting on signal 15.
May 18 14:09:12 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 14:09:12 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="287" x-info="http://www.rsyslog.com"] (re)start
May 18 15:26:36 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 15:26:36 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
May 19 06:18:39 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 19 06:18:39 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
$

Afficher les dernières lignes d'un fichier en temps réel

$ tail -f /var/log/messages
May 18 04:54:03 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
May 18 12:21:15 shutdown[10971]: shutting down for system halt
May 18 12:21:34 kernel: Kernel logging (proc) stopped.
May 18 12:21:34 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] exiting on signal 15.
May 18 14:09:12 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 14:09:12 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="287" x-info="http://www.rsyslog.com"] (re)start
May 18 15:26:36 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 18 15:26:36 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
May 19 06:18:39 kernel: imklog 4.6.4, log source = /proc/kmsg started.
May 19 06:18:39 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="285" x-info="http://www.rsyslog.com"] (re)start
^C # Pour interrompre la commande
$

Etiquettes: 

Premières lignes d'un flux de données : head

La commande head permet de visualiser, par défaut, les 10 premières lignes d'un flux de données.

Syntaxe

head [-n] [fichiers ...]
Principales options :
-n Affiche les n premières lignes

Exemple

Afficher les 5 premières lignes du fichier /var/log/messages

$ head -5 /var/log/messages
May 13 04:54:06 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
May 14 04:54:03 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
May 15 04:54:03 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
May 15 04:54:03 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
May 16 04:54:03 rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="288" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
$

Etiquettes: 

Duplication de la sortie standard : tee

La commande tee récupère un flux de données sur son entrée standard, l'envoie dans le fichier passé en argument et sur la sortie standard. Cela permet d'avoir à la fois le résultat à l'écran et dans un fichier.

Syntaxe

commande | tee [options] fichier
Principales options :
-a Ajoute à la fin de "fichier" si celui-ci existe déjà

Exemple

A partir du fichier /var/log/apache2/access.log, récupérer les lignes datant du 19/05/2012 en les affichant à l'écran et en les enregistrant dans un fichier

$ grep '19/May/2012' /var/log/apache2/access.log | tee 2012_05_19_log_apache
x.x.x.x - - [19/May/2012:14:49:03 +0200] "GET / HTTP/1.1" 200 7226 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:04 +0200] "GET /node.css?7 HTTP/1.1" 200 664 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:04 +0200] "GET /defaults.css?7 HTTP/1.1" 200 718 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
...
$

$ head -5 2012_05_19_log_apache
x.x.x.x - - [19/May/2012:14:49:03 +0200] "GET / HTTP/1.1" 200 7226 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:04 +0200] "GET /node.css?7 HTTP/1.1" 200 664 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:04 +0200] "GET /defaults.css?7 HTTP/1.1" 200 718 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:05 +0200] "GET /layout.css?7 HTTP/1.1" 200 1444 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
x.x.x.x - - [19/May/2012:14:49:05 +0200] "GET /style.css?7 HTTP/1.1" 200 7648 "http://quennec.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"
$

Etiquettes: 

Numérotation de lignes : nl

La commande nl permet d'afficher un fichier texte en numérotant les lignes. Par défaut, les lignes vides ne sont pas numérotées.

Syntaxe

nl [options] [fichiers ...]
Principales options :
-b a Numéroter toutes les lignes
-b t Ne pas numéroter les lignes vides

Exemple

$ nl fic7
     1  erytert
 
     2  e
     3  er
     4  ..
     5  uhy
 
     6  2
     7  e_
     8  34
     9  546
 
$

Numéroter toutes les lignes, mêmes vides

$ nl -ba fic7
     1  erytert
     2
     3  e
     4  er
     5  ..
     6  uhy
     7
     8  2
     9  e_
    10  34
    11  546
    12
$

Etiquettes: 

Présentation d'un flux de données : pr

La commande pr affiche un texte de manière formatée. Par défaut, chaque page fait 66 lignes, dont 5 lignes d'en-tête et 5 ligne de pied de page.

Syntaxe

pr [options] [fichiers ...]
Quelques options :
-c nb Disposition en nb colonnes
-h texte Ecrire un  titre en en-tête
-l nb Nombre de lignes d'une page

Exemples

$ cat depts2012
CP : 01053      DEPT : AIN
CP : 02408      DEPT : AISNE
CP : 03190      DEPT : ALLIER
CP : 04070      DEPT : ALPES-DE-HAUTE-PROVENCE
CP : 05061      DEPT : HAUTES-ALPES
CP : 06088      DEPT : ALPES-MARITIMES
CP : 07186      DEPT : ARDECHE
CP : 08105      DEPT : ARDENNES
CP : 09122      DEPT : ARIEGE
CP : 10387      DEPT : AUBE
CP : 11069      DEPT : AUDE
CP : 12202      DEPT : AVEYRON
CP : 13055      DEPT : BOUCHES-DU-RHONE
CP : 14118      DEPT : CALVADOS
CP : 15014      DEPT : CANTAL
CP : 16015      DEPT : CHARENTE
CP : 17300      DEPT : CHARENTE-MARITIME
CP : 18033      DEPT : CHER
CP : 19272      DEPT : CORREZE
CP : 21231      DEPT : COTE-D'OR
CP : 22278      DEPT : COTES-D'ARMOR
CP : 23096      DEPT : CREUSE
CP : 24322      DEPT : DORDOGNE
CP : 25056      DEPT : DOUBS
CP : 26362      DEPT : DROME
CP : 27229      DEPT : EURE
CP : 28085      DEPT : EURE-ET-LOIR
CP : 29232      DEPT : FINISTERE
CP : 30189      DEPT : GARD
CP : 31555      DEPT : HAUTE-GARONNE
CP : 32013      DEPT : GERS
CP : 33063      DEPT : GIRONDE
CP : 34172      DEPT : HERAULT
CP : 35238      DEPT : ILLE-ET-VILAINE
CP : 36044      DEPT : INDRE
CP : 37261      DEPT : INDRE-ET-LOIRE
CP : 38185      DEPT : ISERE
CP : 39300      DEPT : JURA
CP : 40192      DEPT : LANDES
CP : 41018      DEPT : LOIR-ET-CHER
CP : 42218      DEPT : LOIRE
CP : 43157      DEPT : HAUTE-LOIRE
CP : 44109      DEPT : LOIRE-ATLANTIQUE
CP : 45234      DEPT : LOIRET
CP : 46042      DEPT : LOT
CP : 47001      DEPT : LOT-ET-GARONNE
CP : 48095      DEPT : LOZERE
CP : 49007      DEPT : MAINE-ET-LOIRE
CP : 50502      DEPT : MANCHE
CP : 51108      DEPT : MARNE
CP : 52121      DEPT : HAUTE-MARNE
CP : 53130      DEPT : MAYENNE
CP : 54395      DEPT : MEURTHE-ET-MOSELLE
CP : 55029      DEPT : MEUSE
CP : 56260      DEPT : MORBIHAN
CP : 57463      DEPT : MOSELLE
CP : 58194      DEPT : NIEVRE
CP : 59350      DEPT : NORD
CP : 60057      DEPT : OISE
CP : 61001      DEPT : ORNE
CP : 62041      DEPT : PAS-DE-CALAIS
CP : 63113      DEPT : PUY-DE-DOME
CP : 64445      DEPT : PYRENEES-ATLANTIQUES
CP : 65440      DEPT : HAUTES-PYRENEES
CP : 66136      DEPT : PYRENEES-ORIENTALES
CP : 67482      DEPT : BAS-RHIN
CP : 68066      DEPT : HAUT-RHIN
CP : 69123      DEPT : RHONE
CP : 70550      DEPT : HAUTE-SAONE
CP : 71270      DEPT : SAONE-ET-LOIRE
CP : 72181      DEPT : SARTHE
CP : 73065      DEPT : SAVOIE
CP : 74010      DEPT : HAUTE-SAVOIE
CP : 75056      DEPT : PARIS
CP : 76540      DEPT : SEINE-MARITIME
CP : 77288      DEPT : SEINE-ET-MARNE
CP : 78646      DEPT : YVELINES
CP : 79191      DEPT : DEUX-SEVRES
CP : 80021      DEPT : SOMME
CP : 81004      DEPT : TARN
CP : 82121      DEPT : TARN-ET-GARONNE
CP : 83137      DEPT : VAR
CP : 84007      DEPT : VAUCLUSE
CP : 85191      DEPT : VENDEE
CP : 86194      DEPT : VIENNE
CP : 87085      DEPT : HAUTE-VIENNE
CP : 88160      DEPT : VOSGES
CP : 89024      DEPT : YONNE
CP : 90010      DEPT : TERRITOIRE_DE_BELFORT
CP : 91228      DEPT : ESSONNE
CP : 92050      DEPT : HAUTS-DE-SEINE
CP : 93008      DEPT : SEINE-SAINT-DENIS
CP : 94028      DEPT : VAL-DE-MARNE
CP : 95500      DEPT : VAL-D'OISE
CP : 97105      DEPT : GUADELOUPE
CP : 97209      DEPT : MARTINIQUE
CP : 97302      DEPT : GUYANE
CP : 97411      DEPT : LA_REUNION
CP : 97608      DEPT : MAYOTTE
$

$ pr depts2012 | more
 
 
2012-05-19 17:19                    depts2012                     Page 1
 
 
CP : 01053      DEPT : AIN
CP : 02408      DEPT : AISNE
CP : 03190      DEPT : ALLIER
CP : 04070      DEPT : ALPES-DE-HAUTE-PROVENCE
CP : 05061      DEPT : HAUTES-ALPES
CP : 06088      DEPT : ALPES-MARITIMES
CP : 07186      DEPT : ARDECHE
CP : 08105      DEPT : ARDENNES
CP : 09122      DEPT : ARIEGE
CP : 10387      DEPT : AUBE
CP : 11069      DEPT : AUDE
CP : 12202      DEPT : AVEYRON
CP : 13055      DEPT : BOUCHES-DU-RHONE
CP : 14118      DEPT : CALVADOS
CP : 15014      DEPT : CANTAL
CP : 16015      DEPT : CHARENTE
CP : 17300      DEPT : CHARENTE-MARITIME
CP : 18033      DEPT : CHER
CP : 19272      DEPT : CORREZE
...
$

Présentation du fichier en 2 colonnes de 15 lignes par page avec un titre sur chaque page

$ pr -l 15 -c2 -h "Liste des departements" depts2012 | more
 
 
2012-05-19 17:19              Liste des departements              Page 1
 
 
CP : 01053      DEPT : AIN          CP : 06088  DEPT : ALPES-MARITI
CP : 02408      DEPT : AISNE        CP : 07186  DEPT : ARDECHE
CP : 03190      DEPT : ALLIER       CP : 08105  DEPT : ARDENNES
CP : 04070      DEPT : ALPES-DE-HAU CP : 09122  DEPT : ARIEGE
CP : 05061      DEPT : HAUTES-ALPES CP : 10387  DEPT : AUBE
 
 
 
 
 
 
 
2012-05-19 17:19              Liste des departements              Page 2
 
 
CP : 11069      DEPT : AUDE         CP : 16015  DEPT : CHARENTE
CP : 12202      DEPT : AVEYRON      CP : 17300  DEPT : CHARENTE-MAR
CP : 13055      DEPT : BOUCHES-DU-R CP : 18033  DEPT : CHER
CP : 14118      DEPT : CALVADOS     CP : 19272  DEPT : CORREZE
CP : 15014      DEPT : CANTAL       CP : 21231  DEPT : COTE-D'OR
...
$

Etiquettes: