用 sed 模拟尾巴

Mar*_*ter 8 bash sed

我有一个只有有限数量的二进制文件 ( bash, cp, cat, sed, ...)的迷你系统。我没有tail命令,我想知道我是否可以模拟尾部功能sed

cat foo.txt | tail -n 10
Run Code Online (Sandbox Code Playgroud)

我知道我可以用 sed 打印第 1-10 行cat foo.txt | sed -n '1,10p',但是我将如何打印最后 10 行?

Chr*_*own 16

你可以这样做:

sed -e :a -e '$q;N;11,$D;ba'
Run Code Online (Sandbox Code Playgroud)

  • 有人能解释一下这个美妙的命令吗?我希望有一个命令可以显示文档的开头*和*结尾,我认为这个命令可以提供帮助,但我需要添加头部部分。事实上,我正在寻找的命令很简单: `sed -e '1,11p' -e :a -e '$q;N;11,$D;ba'` 但我仍然想了解尾部部分!!! (3认同)