列出目录中每个文件的前几行

时间:2013-12-09 20:34:39

标签: linux bash shell

我正在尝试创建一个非常简单的bash脚本,它将列出特定目录中每个文件的前几行。该目录应由参数指定。 我认为应该使用Grep命令,但我真的不知道如何。

我现有的脚本似乎根本不起作用,所以把它放在这里是没用的。

5 个答案:

答案 0 :(得分:8)

使用head命令:

head -3 /path/to/dir/*

答案 1 :(得分:3)

对于使用head*的任何答案,将stderr重定向到/ dev / null除非您希望看到如下错误:

head: error reading ‘tmp’: Is a directory

答案 2 :(得分:0)

for file in dir/*; do
    echo "-- $file --"
    head "$file"
    echo
done

答案 3 :(得分:0)

因为bash默认情况下会进行文件名扩展(globbing),所以你可以让你的shell扩展输入,让其他人做其余的事情:

head *

*通配符扩展为工作目录中的所有文件名。在zsh上,当你按Tab键自动填充命令行时,你可以很好地看到它。

您可以使用-n参数将行数更改为head。

如果您想以递归方式执行此操作:

find . \! -type d -exec head '{}' +

答案 4 :(得分:0)

如果您想要以.txt结尾的所有文件的前几行,请尝试

head *.txt

head --lines=3 *.txt