如何使用 cut 命令从文件中打印前 20 行

tob*_*obe -4 shell-script

我有一个包含 100 行文本的文件,我只需要打印前 20 行

如何仅使用剪切命令进行打印

Sté*_*las 7

通过一些cut实现(包括 GNU 和 busybox),您可以执行以下操作:

cut -d'
' -f1-20 < your-file
Run Code Online (Sandbox Code Playgroud)

(这是在两行上,以便在'...'引号内有一个换行符;对于支持 ksh93 样式$'...'引号的外壳,您可以-d$'\n'改用)。

但这既不标准也不便携。

它也没有记录在案,看起来像是一个意外的实现,所以它很可能在未来的版本中停止工作,恕不另行通知。

cut至少在 GNU 和 busybox 的情况下,它也完全读取输入,因此yes例如输出永远不会完成。

该任务的正确工具是head

head -n 20 < your-file
Run Code Online (Sandbox Code Playgroud)

虽然你也可以使用sed

sed 20q < your-file
Run Code Online (Sandbox Code Playgroud)

或者awk

awk '{print}; NR == 20 {exit}' < your-file
Run Code Online (Sandbox Code Playgroud)