You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本需求:遍历当前目录文件并输出文件名及前10行

问题修正:遍历文件并输出文件名+前10行

你的原代码问题出在echo "$f" | cat $f这一行:管道会把echo输出的文件名作为cat的输入内容,而不是先打印文件名再读取文件本身,导致文件名没有被正确输出。

修正后的代码

for f in *; do
  if [ -f "$f" ]; then
    echo "$f"
    head -n 10 "$f"
  fi
done > output.txt

代码说明

  • echo "$f":直接打印当前文件名,满足“先输出文件名”的要求
  • head -n 10 "$f":直接读取文件$f的前10行,不需要额外调用cat(head本身支持直接读取文件,用cat属于冗余操作)
  • 整个循环的输出重定向到output.txt,和你的需求一致

可选优化(提升可读性)

如果希望不同文件的内容分隔更清晰,可以给文件名加标记并添加空行:

for f in *; do
  if [ -f "$f" ]; then
    echo "--- 文件: $f ---"
    head -n 10 "$f"
    echo ""  # 空行分隔不同文件
  fi
done > output.txt

内容的提问来源于stack exchange,提问作者Eman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:10:10