Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1576|回复: 3

tail命令

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
发表于 2018-4-24 14:19:18 | 显示全部楼层 |阅读模式
tail命令
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

number不指定,默认显示10行。
tail可运行文件一般在/usr/bin/以下。


tail命令使用方法演示例子

1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。

2、tail -n 20 filename
说明:显示filename最后20行。

3、tail -r -n 10 filename
说明:逆序显示filename最后10行。


回复

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
 楼主| 发表于 2018-7-10 18:05:43 | 显示全部楼层
grep -C 10 "错误信息" /data/logs/xxx.log | tail -20

从文件最后查询错误信息的前后各10行

grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行

grep -B 5 foo file  显示foo及前5行
grep -A 5 foo file  显示foo及后5行

回复 支持 反对

使用道具 举报

1214

主题

1975

帖子

7486

积分

认证用户组

Rank: 5Rank: 5

积分
7486
发表于 2020-2-1 22:08:54 | 显示全部楼层
strCmd.Format("tail +%dcf %s/%s\r\n",nFileLen,g_pMainWnd->m_strPcmdPath[nOmcr],tNewFileTime.Format("%y%m%d%H.PCMD"));

tail +200cf /omp/omp-data/logs/pcmd/12022908.PCMD

从文件12022908.PCMD开头跨越200个位置开始读取到文件尾


tail -f filename 把filename最尾部的内容显示在屏幕上,且不断刷新,以看到最新的文件内容

+指从文件开头指定的单元数开始将文件写到标准输出.
-指从文件末尾指定的单元数开始将文件写到标准输出.

没有 + 或 -则从文件末尾指定的单元号开始读取文件

回复 支持 反对

使用道具 举报

1214

主题

1975

帖子

7486

积分

认证用户组

Rank: 5Rank: 5

积分
7486
发表于 2020-2-4 20:58:13 | 显示全部楼层
使用 cat head 和 tail 以块方式读取文本流

cat 111 | head -n 5 | tail -n 2
上面取文件的第4、5行   即: 从第五行前退两行

假定您想从文件开头算起第 1000 字节处开始读取一块 789 字节的数据。可以使用 cat file | head -c 1788 | tail -c 789 来解决这一问题。


[caihf@caihf-desktop:~]$ cat 111 | head -c 50 | tail -c 20
2
3333
44444
5556555[caihf@caihf-desktop:~]$ ---注意这里的返回  不是按行取,返回没有换行


http://jiajun.iteye.com/blog/422311
技巧: 使用 head 和 tail 以块方式读取文本流
博客分类: LINUX
C++C#CLinuxF#
    假定您想只处理文件的一部分,譬如头几行或后几行,那您该怎么做呢?请使用 head (它将头 10 行发送至标准输出)或 tail (它将后 10 行发送至标准输出)。

您可以通过使用 -n 选项改变这些命令发送至其标准输出的行数(当然,输出结果将随 XF86Config 文件的内容而不同):

将 XF86Config 中选定行数的内容发送至标准输出

$ head -n 4 /etc/X11/XF86Config
# File generated by anaconda.
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
$ tail -n 4 /etc/X11/XF86Config
Modes       "1600x1200"
ViewPort    0 0
EndSubsection
EndSection




    如果您想让 head 或 tail 以字节而不是以行为单位,那该怎么办呢?您可以用 -c 选项代替 -n 选项。因此,要显示前 200 个字符,请使用 head -c 200
          file
                               
        ,或者使用 tail -c 200
          file
                               
        来显示后 200 个字符。如果数字后面跟有 b (表示块(block)),那么这个数字将被乘以 512。类似地,跟有 k (表示千字节(kilobyte))表示用 1024 去乘给定的数字,而跟有 m (表示兆字节(megabyte))表示用 1048576 字节去乘给定的数字。

请记住, head file1 file2 file3 和 cat
file1 file2 file3 | head 之间有重大差别。前者将打印每个文件指定行数的内容,不同文件的内容之间用头信息隔开,头信息以 ==> 后跟文件名开头。后者将打印由 cat 命令后所列文件组成的输入流中指定行数的内容,但将把输入流作为单个文件对待。可以使用 -q (表示静默(quiet))选项关闭文件名头信息。与 -q 相反的是 -v (表示详列(verbose))。



    假如您要处理的文件在处理期间一直在发生变化(比如,当您让 head 或 tail 读取来自正在被另一个命令写入的文件的数据时,就是这种情况),请使用 -f 选项让 tail 持续读取来自指定文件的数据并将这些数据发送至 tail 自己的标准输出中 。通过管道发送数据时该选项会被忽略。因此, cat file | tail -f 将不会得到所期望的结果,但 tail -f file 则可以。



    (如果 tail 正在读取的文件不止一个,那么各行内容之间将用标准头信息隔开,以指明它们来自哪个文件,标准头信息以 ==> 开头。)

这个选项用于监视系统日志再合适不过,譬如,在单独的终端窗口(或单独的控制台)中执行的 tail -f /var/log/access.log 将持续打印每次点击后新添加的 Apache 访问日志条目,一直到您用 Ctrl-C 停止它为止。

通过组合使用 head 和 tail ,可以从文件的中间部分读取给定长度的一块数据!下面说明如何做到:假定您想从文件开头算起第 1000 字节处开始读取一块 789 字节的数据。可以使用 cat file | head -c 1788 | tail -c 789 来解决这一问题。



    tac 命令逆序排序文件

如果您想对文件中的各行进行逆序排序,该怎么做呢?这就要用到 tac 命令。(请注意, tac 由 cat 逆序拼写而成。)该命令对所列出的文件中的各行或各段进行逆序排序。

该命令不能逆序排序各文件的顺序 — 这个任务您得自己做,以逆向顺序在 tac 命令后列出各文件即可。作为说明 tac 的工作原理的示例,请在您的主目录中对一些文件使用 ls -l | tail 和 ls -l | tail | tac ,比较其结果。



来自:http://www.ibm.com/developerwork ... 2&S_CMP=content


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-3-29 13:30 , Processed in 0.058662 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表