在使用sed的Windows框(没有CYGWIN等)上,如何从文本文件中“删除除最后n行以外的所有行”?
在* nix上你可以让tail / cat / wc参与预处理输入文件,但你怎么能用纯sed做到这一点?
[FWIW sed是GNU sed;该平台是Windows 2003]。
答案 0 :(得分:2)
如果查看GNU sed信息页面,可以看到使用sed的tail
版本
4.13 Printing the Last Lines
============================
Printing the last N lines rather than the first is more complex but
indeed possible. N is encoded in the second line, before the bang
character.
This script is similar to the `tac' script in that it keeps the
final output in the hold space and prints it at the end:
#!/usr/bin/sed -nf
1! {; H; g; }
1,10 !s/[^\n]*\n//
$p
h
但是你为什么要用sed而不是尾巴来让你的生活变得复杂?使用最合适的工具。仅供参考,您也可以下载GNU win32 tools。
答案 1 :(得分:1)