我有一个包含 100 行文本的文件,我只需要打印前 20 行
如何仅使用剪切命令进行打印
答案1
通过一些cut
实现(包括 GNU 和 busybox),您可以执行以下操作:
cut -d'
' -f1-20 < your-file
(它位于两行,以便在'...'
引号内有一个换行符;对于支持 ksh93 样式$'...'
引号的 shell,您可以使用-d$'\n'
它来代替)。
但这既不标准也不便携。
它也没有记录在案,看起来像是一个实施事故,因此它很可能在未来的版本中停止工作,恕不另行通知。
至少在 GNU 和 busybox 的情况下cut
,它还会完全读取输入,因此yes
,例如,永远不会完成输出。
完成该任务的正确工具是head
:
head -n 20 < your-file
虽然你也可以使用sed
:
sed 20q < your-file
或者awk
:
awk '{print}; NR == 20 {exit}' < your-file