我想创建一个非常简单的bash脚本,它将列出特定目录中每个文件的前几行。该目录应该由参数指定。 我认为应该使用Grep命令,但我真的不知道如何。列出目录中每个文件的前几行
我现有的脚本似乎根本不起作用,所以把它放在这里是没有用的。
我想创建一个非常简单的bash脚本,它将列出特定目录中每个文件的前几行。该目录应该由参数指定。 我认为应该使用Grep命令,但我真的不知道如何。列出目录中每个文件的前几行
我现有的脚本似乎根本不起作用,所以把它放在这里是没有用的。
for file in dir/*; do
echo "-- $file --"
head "$file"
echo
done
使用head命令:
head -3 /path/to/dir/*
因为bash所做的文件名扩展(通配符)在默认情况下,你可以让你的shell扩展输入,让头部做休息:
head *
*通配符扩展到工作目录中的所有文件名。在zsh上,你可以很好地看到这一点,当你按下tab键时,它会自动完成你的命令行。
您可以使用-n参数改变行数。
如果你想递归地做到这一点:如果你想在.txt
结尾的文件的前几行
find . \! -type d -exec head '{}' +
,尝试
head *.txt
或
head --lines=3 *.txt
对于任何使用head
和*
的答案,重定向stderr到/ dev/null,除非你想看到像这样的错误:
head: error reading ‘tmp’: Is a directory
尝试:'head -n 5 *' – pfnuesel