grepコマンド

環境

CentOS7.6(64bit)

概要

ファイルの中からデータを検索します。

書式

grep [オプション] [パターン] ファイル名

オプション

-i
大文字を小文字を区別しません。

-n
出力行頭に入力ファイルでの行番号を表示します。

-v
検索に引っかからなかった行を出力します。

-R -r
ディレクトリ配下のファイルとサブディレクトリも対象にします。

サンプル

例1

大文字と小文字を区別せず文字列を抜き出します。

$ grep -i error /var/log/messages*

Jul 15 10:52:05 118-27-36-98 cloud-init: 2019-07-15 01:52:05,446 - __init__.py[WARNING]: Error persisting instance-data.json: 'utf8' codec can't decode byte 0xed in position 1: invalid continuation byte
Jul 15 10:52:17 118-27-36-98 cloud-init: http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/repodata/4cec4aec33f4dfb30c5b2fce04ff220da597e6d288e824c4621e86f0e48dcf3b-updateinfo.xml.bz2: [Errno 14] HTTP Error 404 - Not Found
Jul 15 10:52:17 118-27-36-98 cloud-init: https://wiki.centos.org/yum-errors
Jul 15 10:52:17 118-27-36-98 cloud-init: https://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora-projects/epel/7/x86_64/repodata/5a539e53a68491caa2728e32e57cb093b8176dd51ae4f16307d392b2b0adbbfe-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
Jul 15 10:52:17 118-27-36-98 cloud-init: https://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora-projects/epel/7/SRPMS/repodata/f6c8749190d86aeec2f67c052ec768abc638bc8b0b52e61fe9e164cb7fdceced-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
Jul 15 10:52:17 118-27-36-98 cloud-init: http://fedora.cs.nctu.edu.tw/epel/7/x86_64/repodata/5a539e53a68491caa2728e32e57cb093b8176dd51ae4f16307d392b2b0adbbfe-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found

大文字や小文字を区別することなく「error」という文字を検索します。

例2

コメントと空行以外を抜き出します。

$ cat /etc/yum.repos.d/CentOS-Base.repo | grep -v ^# | grep -v ^$

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

コメントと空行以外を確認します。設定ファイルなどではコメントに「#」が多く利用されています。

タイトルとURLをコピーしました