如何使用 sed 删除文件的最后 n 行

新手上路,请多包涵

我想从文件末尾删除一些 n 行。这可以使用 sed 完成吗?

例如,要删除从 2 到 4 的行,我可以使用

$ sed '2,4d' file

但我不知道行号。我可以使用删除最后一行

$sed $d file

但我想知道从末尾删除 n 行的方法。请让我知道如何使用 sed 或其他方法来做到这一点。

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

阅读 822
2 个回答

我不知道 sed ,但可以用 head 完成:

 head -n -2 myfile.txt

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

如果硬编码 n 是一个选项,您可以使用对 sed 的顺序调用。例如,要删除最后三行,请将最后一行删除三次:

 sed '$d' file | sed '$d' | sed '$d'

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

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