Unix shell脚本,用于打印目录或子目录中任何README文件的第一行

时间:2012-02-23 23:48:12

标签: bash shell unix scripting

任何人都知道如何编写一个unix shell脚本(ksh)来打印当前和子目录中与“README”名称匹配的任何文件的第一行?

4 个答案:

答案 0 :(得分:6)

findhead

一起使用
find . -name 'README' -exec head -1 {} \;

为什么\;

来自find manual

  

-exec命令;
                执行命令;如果返回0状态,则返回true。在查询之前,所有后面的查找参数都被视为命令的参数                 由;' is encountered. The string {}'组成的替换为正在处理的任何地方处理的当前文件名。                 命令的命令,而不仅仅是在某些版本的find中的参数。这些结构都可能需要                 转义(使用“\”)或引用以保护它们免受外壳扩展。有关-exec的使用示例,请参阅“示例”部分                 选项。为每个匹配的文件运行一次指定的命令。该命令在起始目录中执行。有不可避免的 -                 围绕使用-exec动作的安全问题;你应该使用-execdir选项。

答案 1 :(得分:3)

你甚至不需要一个脚本,只需一行:

head -n 1 `find . -name README`

答案 2 :(得分:3)

head -1 `find . -name README`

应该做你想要的事。

答案 3 :(得分:0)

find . -name README | xargs head -1