我必须打印多个文件的第 5 行到第 10 行,这些文件在目录中没有相同的扩展名,但它应该避免同一目录中的所有子目录。
答案1
使用 zsh 和 GNU sed(对于-s
选项将每个单独的文件视为单独的流来打印):
zsh -c 'sed -s -n 5,10p ./*(.)'
否则,
for f in ./*
do
[ -f "$f" ] && sed -n 5,10p "$f"
done
(请注意,除了常规文件之外,还处理到常规文件的符号链接;&& [ ! -L "$f" ]
如果您想跳过它们,请添加 a,或者在解决方案中(.)
更改为将它们包含在那里)(-.)
zsh