Erfahren Sie, wie Sie Linux-Befehle (sed
, awk
) verwenden, um eine bestimmte Zeile einer Datei oder ein Befehlsergebnis anzuzeigen.
[demo@centos8 test]$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
[demo@centos8 test]$
Es gibt eine Datei (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
Um die ** 3. Zeile ** der Datei (a01.txt
) anzuzeigen, können Sie sie mit dem folgenden Befehl anzeigen.
sed -n 3p a01.txt
Ausführungsergebnis
[demo@centos8 test]$ sed -n 3p a01.txt
3333 4444 5555 6666 c
[demo@centos8 test]$
Sie können es auch mit dem folgenden Befehl anzeigen.
awk 'NR==3' a01.txt
Ausführungsergebnis
[demo@centos8 test]$ awk 'NR==3' a01.txt
3333 4444 5555 6666 c
[demo@centos8 test]$
Verwenden Sie den folgenden Befehl, um ** 2. bis 4. Zeile ** anzuzeigen.
sed -n '2,4p' a01.txt
Ausführungsergebnis
[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]$
Sie können es auch mit dem folgenden Befehl anzeigen.
awk 'NR==2,NR==4' a01.txt
Ausführungsergebnis
[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]$
Verwenden Sie den folgenden Befehl, um ** 2. Zeile ** und ** 4. Zeile ** anzuzeigen.
awk 'NR==2;NR==4' a01.txt
Ausführungsergebnis
[demo@centos8 test]$ awk 'NR==2;NR==4' a01.txt
2222 3333 4444 5555 b
4444 5555 6666 7777 d
[demo@centos8 test]$
Wenn Sie ab der zweiten Zeile ** alle ** anzeigen möchten, können Sie dies mit dem folgenden Befehl anzeigen.
tail -n +2 a01.txt
Ausführungsergebnis
[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]$
Sie können es auch mit dem folgenden Befehl anzeigen.
sed -n '2,$p' a01.txt
Ausführungsergebnis
[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
Ausführungsergebnis
[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))Der Befehl `ls -la' zeigt Folgendes an:
Ausführungsergebnis
[demo@centos8 test]$ ls -la
Insgesamt 16
drwxrwxr-x 2 Demo Demo 66 14. Juni 16:13 .
drwx------.5 Demo Demo 159 14. Juni 15:38 ..
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
-rw-rw-r--1 Demo Demo 55 14. Juni 14:51 b02.txt
[demo@centos8 test]$
Durch Verbinden der Befehle mit einer Pipe können Sie die Befehle sed
und awk
eingeben.
Um die ** 4. Zeile ** des Befehlsergebnisses anzuzeigen, können Sie sie mit dem folgenden Befehl anzeigen.
ls -la | sed -n 4p
Ausführungsergebnis
[demo@centos8 test]$ ls -la | sed -n 4p
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
[demo@centos8 test]$
ls -la | awk 'NR==4'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | awk 'NR==4'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
[demo@centos8 test]$
Um die ** 4. bis 6. Zeile ** des Befehlsergebnisses anzuzeigen, können Sie sie mit dem folgenden Befehl anzeigen.
ls -la | sed -n '4,6p'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | sed -n '4,6p'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
[demo@centos8 test]$
ls -la | awk 'NR==4,NR==6'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | awk 'NR==4,NR==6'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
[demo@centos8 test]$
Um die ** 4. Zeile ** und ** 6. Zeile ** des Befehlsergebnisses anzuzeigen, können Sie sie mit dem folgenden Befehl anzeigen.
ls -la | awk 'NR==4;NR==6'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | awk 'NR==4;NR==6'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
[demo@centos8 test]$
Wenn Sie alle ** nach der ** 4. Zeile des Befehlsergebnisses anzeigen möchten, können Sie es mit dem folgenden Befehl anzeigen.
`ls -la | tail -n +4'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | tail -n +4
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
-rw-rw-r--1 Demo Demo 55 14. Juni 14:51 b02.txt
[demo@centos8 test]$
ls -la | sed -n '4,$p'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | sed -n '4,$p'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
-rw-rw-r--1 Demo Demo 55 14. Juni 14:51 b02.txt
[demo@centos8 test]$
ls -la | awk 'NR>=4'
Ausführungsergebnis
[demo@centos8 test]$ ls -la | awk 'NR>=4'
-rw-rw-r--1 Demo Demo 110 14. Juni 15:38 a01.txt
-rw-rw-r--1 Demo Demo 56 14. Juni 14:48 a02.txt
-rw-rw-r--1 Demo Demo 111 14. Juni 14:50 b01.txt
-rw-rw-r--1 Demo Demo 55 14. Juni 14:51 b02.txt
[demo@centos8 test]$
das ist alles
Recommended Posts