grep で前後の行も抽出

grep で前後の行も抽出

ファイルの中身を検索するなら

sudo find /etc/ -type f | sudo grep '\.conf$' |sudo xargs grep 80

[/shell
というように
grep コマンドの結果を xargs コマンドで実行すればみることができる

結果は
[shell
/etc/lvm/lvm.conf:    # found to make up over 80% of the memory used by the process.

/etc/lvm/lvm.conf:    # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and

/etc/lvm/lvm.conf:    # the pool exceeds 80%. The warning is repeated when 85%, 90% and

/etc/security/group.conf:#xsh; tty* ;sword;!Wk0900-1800;sound, play

/etc/security/group.conf:#xsh; tty* ;*;Al0900-1800;floppy

/etc/security/pam_env.conf:#LESS	DEFAULT="M q e h15 z23 b80"

/etc/httpd/conf/httpd.conf:#Listen 12.34.56.78:80

/etc/httpd/conf/httpd.conf:Listen 80

/etc/httpd/conf/httpd.conf:#ServerName www.example.com:80

/etc/httpd/conf/httpd.conf:#NameVirtualHost *:80

/etc/httpd/conf/httpd.conf:# (e.g. :80) if mod_ssl is being used, due to the nature of the

/etc/httpd/conf/httpd.conf:#<VirtualHost *:80>

このコマンドの意味は

拡張子が.conf のものを /etc から探し

そのファイルの該当する部分を表示するというもの

ちなみに、検索結果の前後を表示することもできる

まず、検索結果からあとに5行表示したい場合

grep コマンドの -A オプションをつかう

例として


sudo find /etc/ -type f | sudo grep '\.conf$' |sudo xargs grep VirtualHost

とすれば
VirtualHost が描かれている部分が表示される
結果は


/etc/httpd/conf/httpd.conf:# ports, in addition to the default. See also the <VirtualHost>
/etc/httpd/conf/httpd.conf:# <VirtualHost> definition.  These values also provide defaults for
/etc/httpd/conf/httpd.conf:# any <VirtualHost> containers you may define later in the file.
/etc/httpd/conf/httpd.conf:# All of these directives may appear inside <VirtualHost> containers,
/etc/httpd/conf/httpd.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
/etc/httpd/conf/httpd.conf:# logged here.  If you *do* define an error logfile for a <VirtualHost>
/etc/httpd/conf/httpd.conf:# If you do not define any access logfiles within a <VirtualHost>
/etc/httpd/conf/httpd.conf:# define per-<VirtualHost> access logfiles, transactions will be
/etc/httpd/conf/httpd.conf:# copying them to /your/include/path/, even on a per-VirtualHost basis.
/etc/httpd/conf/httpd.conf:# VirtualHost: If you want to maintain multiple domains/hostnames on your
/etc/httpd/conf/httpd.conf:# machine you can setup VirtualHost containers for them. Most configurations
/etc/httpd/conf/httpd.conf:#NameVirtualHost *:80
/etc/httpd/conf/httpd.conf:# NOTE: NameVirtualHost cannot be used without a port specifier 
/etc/httpd/conf/httpd.conf:# VirtualHost example:
/etc/httpd/conf/httpd.conf:# Almost any Apache directive may go into a VirtualHost container.
/etc/httpd/conf/httpd.conf:# The first VirtualHost section is used for requests without a known
/etc/httpd/conf/httpd.conf:#<VirtualHost *:80>
/etc/httpd/conf/httpd.conf:#</VirtualHost>

さらにそこから5行したまで表示したい場合
ちょっとおおいので

sudo find /etc/ -type f | sudo grep '\.conf$' |sudo xargs grep -A 5 \<VirtualHost

として

コメント

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