我正在查找文件列表。
我如何将它输送到另一个实用程序,如cat,以便cat显示所有这些文件的内容?
然后,我将使用grep来搜索这些文件中的一些文本。
我正在查找文件列表。
我如何将它输送到另一个实用程序,如cat,以便cat显示所有这些文件的内容?
然后,我将使用grep来搜索这些文件中的一些文本。
当前回答
列出并查看服务器上/ghi和/jkl目录下所有abc.def文件的内容
find /ghi /jkl -type f -name abc.def 2> /dev/null -exec ls {} \; -exec cat {} \;
要列出带有注释条目的abc.def文件并显示,请查看目录/ghi和/jkl中的这些条目
find /ghi /jkl -type f -name abc.def 2> /dev/null -exec grep -H ^# {} \;
其他回答
我使用的方法是这样的:
find . -name <filename> -print0 | xargs -0 cat | grep <word2search4>
"find"的"-print0"参数和"xargs"的"-0"参数需要正确处理文件路径/名称中的空白。
这对我很有用
find _CACHE_* | while read line; do
cat "$line" | grep "something"
done
使用ggrep。
ggrep -H -R -I "mysearchstring" *
在Unix中搜索包含位于当前目录或子目录中的文本的文件
Piping to another process (although this won't accomplish what you said you are trying to do): command1 | command2 This will send the output of command1 as the input of command2. -exec on a find (this will do what you want to do, but it's specific to find): find . -name '*.foo' -exec cat {} \; Everything between find and -exec are the find predicates you were already using. {} will substitute the particular file you found into the command (cat {} in this case); the \; is to end the -exec command. Send output of one process as command line arguments to another process: command2 `command1` For example: cat `find . -name '*.foo' -print` Note these are backquotes not regular quotes (they are under the tilde ~ on my keyboard). This will send the output of command1 into command2 as command line arguments. It's called command substitution. Note that file names containing spaces (newlines, etc) will be broken into separate arguments, though.
您正在尝试在文件中查找文本吗?你可以简单地使用grep…
grep searchterm *