grep の検索結果でファイル名出力の指定
通常、コマンドでつかうぶんには気にならない
grep の検索結果
しかし、スクリプトにして処理するときには
ルール作っておくと便利
複数ファイルが該当すると
grep コマンドはファイル名まで出すけど
対象が1つの場合は出力しない
例えば
sudo grep key /etc/ssh/*config
を実行すると
/etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_key /etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_rsa_key /etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_dsa_key /etc/ssh/sshd_config:# Lifetime and size of ephemeral version 1 server key /etc/ssh/sshd_config:#PubkeyAuthentication yes /etc/ssh/sshd_config:#AuthorizedKeysFile .ssh/authorized_keys /etc/ssh/sshd_config:# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts /etc/ssh/sshd_config:# Change to no to disable s/key passwords
というようにファイル名まででる
でも結果にファイル名を入れたくないのなら
sudo grep -h key /etc/ssh/*config
というように
grep に -h オプションをつける
逆に、通常は対象ファイルが1つの場合は
ファイル名はでないけど
処理のためにはファイル名が必要
というのなら
-H オプションをつける
sudo grep -H key /etc/ssh/*config
すると
/etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_key /etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_rsa_key /etc/ssh/sshd_config:#HostKey /etc/ssh/ssh_host_dsa_key /etc/ssh/sshd_config:# Lifetime and size of ephemeral version 1 server key /etc/ssh/sshd_config:#PubkeyAuthentication yes /etc/ssh/sshd_config:#AuthorizedKeysFile .ssh/authorized_keys /etc/ssh/sshd_config:# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts /etc/ssh/sshd_config:# Change to no to disable s/key passwords
というようにファイル名も表示される