打印部分文件

时间:2014-04-03 18:00:31

标签: file parsing unix

是否有用于打印部分文件的magic unix命令?我有一个有几百万行的文件,我想跳过大约一百万行,然后打印文件的下一百万行。

提前谢谢你。

2 个答案:

答案 0 :(得分:1)

要提取数据,sed是您的朋友。

假设您可以输入cmd-line的1-off任务:

sed -n '200000,300000p' file | enscript

“数字逗号(,)数字”是sed中范围cmd的一种形式。这个开始于2,000,000行和 * p * rints,直到你达到3,000,000。

如果您希望输出转到屏幕,请移除| enscript

enscript是一个实用程序,用于管理向Postscript兼容打印机发送数据的过程。我的Linux发行版没有这个,所以它不一定是std实用程序。希望您知道需要重定向到哪个命令才能将输出打印到纸张上。

如果要“打印”到其他文件,请使用

sed -n '200000,300000p' file > smallerFile

IHTH

答案 1 :(得分:1)

我建议awk,因为它比sed更容易,更灵活:

awk 'FNR>12 && FNR<23' file

其中FNR是记录号。所以上面打印的线条大于12和23以下。

你可以这样更具体:

awk 'FNR<100 || FNR >990' file

如果记录编号小于100或超过990,则打印行。或者,行超过100,行包含“fred”

awk 'FNR >100 || /fred/' file