任何人都知道如何编写一个unix shell脚本(ksh)来打印当前和子目录中与“README”名称匹配的任何文件的第一行?
答案 0 :(得分:6)
将find
与head
find . -name 'README' -exec head -1 {} \;
为什么\;
?
-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