Voici comment utiliser les commandes Linux (sed
, ʻawk`) pour afficher une ligne spécifiée d'un fichier ou d'un résultat de commande.
[demo@centos8 test]$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
[demo@centos8 test]$
Il existe un fichier (ʻa01.txt`).
a01.txt
1111 2222 3333 4444 a
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
5555 6666 7777 8888 e
Pour afficher la ** 3ème ligne ** du fichier (ʻa01.txt`), vous pouvez l'afficher avec la commande suivante.
sed -n 3p a01.txt
Résultat d'exécution
[demo@centos8 test]$ sed -n 3p a01.txt
3333 4444 5555 6666 c
[demo@centos8 test]$
Vous pouvez également l'afficher avec la commande suivante.
awk 'NR==3' a01.txt
Résultat d'exécution
[demo@centos8 test]$ awk 'NR==3' a01.txt
3333 4444 5555 6666 c
[demo@centos8 test]$
Pour afficher ** la 2e à la 4e ligne **, utilisez la commande suivante.
sed -n '2,4p' a01.txt
Résultat d'exécution
[demo@centos8 test]$ sed -n '2,4p' a01.txt
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
[demo@centos8 test]$
Vous pouvez également l'afficher avec la commande suivante.
awk 'NR==2,NR==4' a01.txt
Résultat d'exécution
[demo@centos8 test]$ awk 'NR==2,NR==4' a01.txt
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
[demo@centos8 test]$
Pour afficher ** 2e ligne ** et ** 4e ligne **, utilisez la commande suivante.
awk 'NR==2;NR==4' a01.txt
Résultat d'exécution
[demo@centos8 test]$ awk 'NR==2;NR==4' a01.txt
2222 3333 4444 5555 b
4444 5555 6666 7777 d
[demo@centos8 test]$
Si vous souhaitez afficher ** tout ** à partir de la deuxième ligne, vous pouvez l'afficher avec la commande suivante.
tail -n +2 a01.txt
Résultat d'exécution
[demo@centos8 test]$ tail -n +2 a01.txt
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
5555 6666 7777 8888 e
[demo@centos8 test]$
Vous pouvez également l'afficher avec la commande suivante.
sed -n '2,$p' a01.txt
Résultat d'exécution
[demo@centos8 test]$ sed -n '2,$p' a01.txt
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
5555 6666 7777 8888 e
[demo@centos8 test]$
awk 'NR>=2' a01.txt
Résultat d'exécution
[demo@centos8 test]$ awk 'NR>=2' a01.txt
2222 3333 4444 5555 b
3333 4444 5555 6666 c
4444 5555 6666 7777 d
5555 6666 7777 8888 e
[demo@centos8 test]$
|
(pipe))La commande `ls -la 'affiche les éléments suivants:
Résultat d'exécution
[demo@centos8 test]$ ls -la
16 au total
drwxrwxr-x 2 démo démo 66 14 juin 16:13 .
drwx------.5 démo démo 159 14 juin 15:38 ..
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
-rw-rw-r--1 démo démo 55 14 juin 14:51 b02.txt
[demo@centos8 test]$
En connectant les commandes avec un tube, vous pouvez entrer les commandes sed
et ʻawk`.
Pour afficher la ** 4ème ligne ** du résultat de la commande, vous pouvez l'afficher avec la commande suivante.
ls -la | sed -n 4p
Résultat d'exécution
[demo@centos8 test]$ ls -la | sed -n 4p
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
[demo@centos8 test]$
ls -la | awk 'NR==4'
Résultat d'exécution
[demo@centos8 test]$ ls -la | awk 'NR==4'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
[demo@centos8 test]$
Pour afficher les ** 4e à 6e lignes ** du résultat de la commande, vous pouvez l'afficher avec la commande suivante.
ls -la | sed -n '4,6p'
Résultat d'exécution
[demo@centos8 test]$ ls -la | sed -n '4,6p'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
[demo@centos8 test]$
ls -la | awk 'NR==4,NR==6'
Résultat d'exécution
[demo@centos8 test]$ ls -la | awk 'NR==4,NR==6'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
[demo@centos8 test]$
Pour afficher la ** 4ème ligne ** et la ** 6ème ligne ** du résultat de la commande, vous pouvez les afficher avec la commande suivante.
ls -la | awk 'NR==4;NR==6'
Résultat d'exécution
[demo@centos8 test]$ ls -la | awk 'NR==4;NR==6'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
[demo@centos8 test]$
Si vous souhaitez afficher tout ** après la ** 4ème ligne du résultat de la commande, vous pouvez l'afficher avec la commande suivante.
`ls -la | tail -n +4'
Résultat d'exécution
[demo@centos8 test]$ ls -la | tail -n +4
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
-rw-rw-r--1 démo démo 55 14 juin 14:51 b02.txt
[demo@centos8 test]$
ls -la | sed -n '4,$p'
Résultat d'exécution
[demo@centos8 test]$ ls -la | sed -n '4,$p'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
-rw-rw-r--1 démo démo 55 14 juin 14:51 b02.txt
[demo@centos8 test]$
ls -la | awk 'NR>=4'
Résultat d'exécution
[demo@centos8 test]$ ls -la | awk 'NR>=4'
-rw-rw-r--1 démo démo 110 14 juin 15:38 a01.txt
-rw-rw-r--1 démo démo 56 14 juin 14:48 a02.txt
-rw-rw-r--1 démo démo 111 14 juin 14:50 b01.txt
-rw-rw-r--1 démo démo 55 14 juin 14:51 b02.txt
[demo@centos8 test]$
c'est tout