bash - combine find and grep into a single command -


how combine below 2 1 line without changing first one?

 # find / -name sshd_config -print  # grep -i <sshd_config path>  permitrootlogin 

i came following, don't know whether gives correct result in different cases

cat `find / -name sshd_config -print` |grep permitrootlogin 

don't cat $(...) [$() modern replacement backticks] -- doesn't work reliably if filenames contain special characters (spaces, wildcards, etc).

instead, tell find invoke cat you, many filenames passed each cat invocation possible:

find / -name sshd_config -exec cat -- '{}' + | grep permitrootlogin 

...or, better, ignore cat altogether , pass filenames grep literally:

find / -name sshd_config -exec grep -h -e permitrootlogin -- /dev/null '{}' + 

replace -h -h if want filenames shown.


Popular posts from this blog