Unix/Linux:显示文件的前10或者20行

时间:2020-01-09 10:46:05  来源:igfitidea点击:

如何在Linux或者类似Unix的系统上显示文件的前10或者20行?
您可以在Unix或者Linux上使用以下任何命令来查看文件的前10行:

  • head命令
  • sed命令
  • awk命令
  • Perl/Python/Php/Ruby

head命令示例以打印前10/20行

执行以下head命令以显示名为bar.txt的文件的前10行:

head -10 bar.txt

执行以下head命令以显示名为bar.txt的文件的前20行:

head -20 bar.txt

如何使用head命令查看文本文件的开头

传递-n选项,如下所示来控制输出的长度:

head -n 5 /etc/passwd

您也可以查看多个文件:

head file1 file2 file3
head -2 /etc/passwd /etc/hosts

也可以使用Shell管道,即使用head命令来过滤命令或者文件的输出:

command1 | head
command1 | head -n 5
ls -l /etc/ | head -n 5

您也可以将输出存储到shell变量中:

file=$(ls -1 -t | head -1)
cp "$file" ~/network-share/backups/

sed命令示例以打印前10/20行

执行以下sed命令以显示名为/etc/group的文件的前10行:

sed -n 1,10p /etc/group

执行以下sed命令以显示名为/etc/group的文件的前20行:

sed -n 1,20p /etc/group

awk命令示例以打印前10/20行

执行以下awk命令以显示名为/etc/passwd的文件的前10行:

awk 'FNR <= 10' /etc/passwd

执行以下awk命令以显示名为/etc/passwd的文件的前20行:

awk 'FNR <= 20' /etc/passwd

perl命令示例,以查看文件的前10/20行

执行以下perl命令以显示名为/etc/passwd的文件的前10行:

perl -ne'1..10 and print' /etc/passwd

执行以下perl命令以显示名为/etc/passwd的文件的前20行:

perl -ne'1..20 and print' /etc/passwd

sed,awk,head和perl命令的示例输出:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin