Linuxで文字列にマッチした行の前後の行を表示する!(grep)

Linuxで文字列にマッチした行の前後の行を表示します。

文字列にマッチした前後の行を表示する!(grep -C)

「-C」オプションを使用して、文字列にマッチした前後の行を表示します。

$ grep -n -C 4 sshd /etc/passwd
43-gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false
44-gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false
45-usradmin:x:1000:1000:usradmin,,,:/home/usradmin:/bin/bash
46-systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
47:sshd:x:126:65534::/run/sshd:/usr/sbin/nologin
48-zabbix:x:127:134::/var/lib/zabbix/:/usr/sbin/nologin
49-Debian-snmp:x:128:135::/var/lib/snmp:/bin/false
50-mongodb:x:129:136::/var/lib/mongodb:/usr/sbin/nologin
51-snapd-range-524288-root:x:524288:524288::/nonexistent:/usr/bin/false

文字列にマッチした後の行を表示する!(grep -A)

文字列にマッチした後の行を表示します。

$ grep -n -A 4 sshd /etc/passwd
47:sshd:x:126:65534::/run/sshd:/usr/sbin/nologin
48-zabbix:x:127:134::/var/lib/zabbix/:/usr/sbin/nologin
49-Debian-snmp:x:128:135::/var/lib/snmp:/bin/false
50-mongodb:x:129:136::/var/lib/mongodb:/usr/sbin/nologin
51-snapd-range-524288-root:x:524288:524288::/nonexistent:/usr/bin/false

文字列にマッチした後の行を表示する!(grep -B)

文字列にマッチした前の行を表示すこともできます。

$ grep -n -B 4 sshd /etc/passwd
43-gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false
44-gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false
45-usradmin:x:1000:1000:usradmin,,,:/home/usradmin:/bin/bash
46-systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
47:sshd:x:126:65534::/run/sshd:/usr/sbin/nologin

おわりに

表示したい情報が、マッチした行の数行あとであったり、直前であったりする場合などに利用できるgrepコマンドのオプションをまとめてみました。

関連記事

関連書籍(Amazon)