Linux系统下,不像windows图形化文件来操作文件,在命令行下如何查看指定文件的某行到指定行之间的命令如何来写呢?今天我们将利用head命令和tail命令来实现指定行的查看。
使用head命令和tail命令显示指定的行:
head
-n, --lines=[-]K
print the first K lines instead of the first 10; with the leading
‘-’, print all but the last K lines of each file
tail
-n, --lines=K
output the last K lines, instead of the last 10; or use -n +K to
output lines starting with the Kth
[root@localhost etc]# pwd
/etc
[root@localhost etc]# cat yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
//此处是一空行
# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
//此处是一空行
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[root@localhost etc]# cat yum.conf |wc -l
23
yum.conf文件共有23行
[root@localhost etc]# head yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
显示前10行,这个是默认值
[root@localhost etc]# head -n 2 yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
显示前2行
[root@localhost etc]# head -n -20 yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
显示除最后20行以外的所有行
[root@localhost etc]# tail yum.conf
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
//此处是一空行
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
显示最后10行,这是默认值
[root@localhost etc]# tail -n 2 yum.conf
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
显示最后2行
[root@localhost etc]# tail -n +21 yum.conf
//此处是一空行
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
从第21行开始显示后面的所有行,即第21行到第23行
显示第11行到第20行(总共23行):
从第11行开始显示,但不包括最后3行
[huage@localhost etc]$ head -n -3 yum.conf |tail -n +11
显示前20行,但从第11行开始
[huage@localhost etc]$ head -n 20 yum.conf |tail -n +11
显示除最后3行以外的所有行,但只显示最后10行
[huage@localhost etc]$ head -n -3 yum.conf |tail -n 10
显示前20行中的后10行
[huage@localhost etc]$ head -n 20 yum.conf |tail -n 10
从第11行开始显示,但只显示前10行
[huage@localhost etc]$ tail -n +11 yum.conf |head -n 10
从第11行开始显示,但不包括最后3行
[huage@localhost etc]$ tail -n +11 yum.conf |head -n -3
显示最后13行中的前10行
[huage@localhost etc]$ tail -n 13 yum.conf |head -n 10
显示最后13行中除末尾的3行以外的前10行
[huage@localhost etc]$ tail -n 13 yum.conf |head -n -3