如何打印目录中不具有相同扩展名的多个文件的行号 5 到 10

如何打印目录中不具有相同扩展名的多个文件的行号 5 到 10

我必须打印多个文件的第 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

相关内容