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
として

コメント