我正在查找文件列表。
我如何将它输送到另一个实用程序,如cat,以便cat显示所有这些文件的内容?
然后,我将使用grep来搜索这些文件中的一些文本。
我正在查找文件列表。
我如何将它输送到另一个实用程序,如cat,以便cat显示所有这些文件的内容?
然后,我将使用grep来搜索这些文件中的一些文本。
当前回答
对我来说,听起来像是shell脚本的工作:
for file in 'find -name *.xml'
do
grep 'hello' file
done
或者类似的东西
其他回答
列出并查看服务器上/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 ^# {} \;
使用ggrep。
ggrep -H -R -I "mysearchstring" *
在Unix中搜索包含位于当前目录或子目录中的文本的文件
对我来说,听起来像是shell脚本的工作:
for file in 'find -name *.xml'
do
grep 'hello' file
done
或者类似的东西
这将只递归地打印文件的名称和内容。
find . -type f -printf '\n\n%p:\n' -exec cat {} \;
编辑(改进版): 这将只递归地打印文本(ascii)文件的名称和内容。
find . -type f -exec grep -Iq . {} \; -print | xargs awk 'FNR==1{print FILENAME ":" $0; }'
再试一次
find . -type f -exec grep -Iq . {} \; -printf "\n%p:" -exec cat {} \;
下面是我找到包含一些我感兴趣的内容的文件名的方法,只是一个简单的bash行,很好地处理文件名中的空格:
find . -name \*.xml | while read i; do grep '<?xml' "$i" >/dev/null; [ $? == 0 ] && echo $i; done