仅使用 shell 脚本从文本文件中获取特定行

新手上路,请多包涵

我正在尝试从文本文件中获取特定行。

到目前为止,我在网上只看到过 sed 之类的东西(我只能使用 sh -not bash 或 sed 或类似的东西)。我只需要使用基本的 shell 脚本来执行此操作。

 cat file | while read line
    do
       #do something
    done

我知道如何遍历行,如上所示,但是如果我只需要获取特定行的内容怎么办

原文由 GangstaGraham 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 697
2 个回答

赛德:

 sed '5!d' file

awk:

 awk 'NR==5' file

原文由 Kent 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设 line 是一个保存您所需行号的变量,如果您可以使用 headtail ,那么它非常简单:

 head -n $line file | tail -1

如果没有,这应该工作:

 x=0
want=5
cat lines | while read line; do
  x=$(( x+1 ))
  if [ $x -eq "$want" ]; then
    echo $line
    break
  fi
done

原文由 micromoses 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题