shell脚本搜索文件然后回显文件的内容

时间:2012-02-24 03:52:37

标签: shell grep pipe

我正在尝试创建一个shell脚本来回显文件的内容,我不知道在哪里找到它。

我认为它会是这样的:

$echo | ls /* | grep file.xml

我的文件可能在某个未知的子文件夹中,所以我试图用grep搜索它的路径。

非常感谢任何有关正确语法的帮助!

3 个答案:

答案 0 :(得分:5)

您可以使用find

find / -name file.xml -exec cat '{}' ';'

/说要查看/及其子目录; -name file.xml说找到名为file.xml的文件;并且-exec cat '{}' ';'表示要为每个打印出内容的文件运行,例如cat /path/to/file.xml

答案 1 :(得分:0)

我想你想抓住这个文件。请注意,如果有多个匹配项,它将打印所有文件。如果您没有足够的特权,您可能会收到需要过滤的权限错误。要避免,只运行您拥有权限的目录,使用升级权限执行或使用grep删除它们。尝试:

cat `find / -name file.xml`

答案 2 :(得分:0)

试试这个:

grep -lr "alice in wonderland" *

这将列出包含文本alice in wonderland的所有文件。如果要显示每个内容,请执行以下操作:

grep -lr "alice in wonderland" *|while read filename; do
  echo ---- Contents of: "$filename"
  cat "$filename"
done