Linux tail命令

Linux:tail 命令

  tail命令与head命令用法相似,tail命令用于查看文档的尾端指定数量的字符块,默认显示文档的最后 10 行,

如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。

tail命令的帮助文档

DESCRIPTION
       Print  the  last  10  lines of each FILE to standard output.  With more than one FILE, precede each
       with a header giving the file name.

       With no FILE, or when FILE is -, read standard input.

       Mandatory arguments to long options are mandatory for short options too.

       -c, --bytes=[+]NUM
              output the last NUM bytes; or use -c +NUM to output starting with byte NUM of each file

       -f, --follow[={name|descriptor}]
              output appended data as the file grows;

              an absent option argument means 'descriptor'

       -F     same as --follow=name --retry

       -n, --lines=[+]NUM
              output the last NUM lines, instead of the last 10; or use -n +NUM to  output  starting  with
              line NUM

       --max-unchanged-stats=N
              with --follow=name, reopen a FILE which has not

              changed  size after N (default 5) iterations to see if it has been unlinked or renamed (this
              is the usual case of rotated log files); with inotify, this option is rarely useful

2、命令选项

-c, --bytes=K                    k,显示文档结尾的前 k 字节,+k,不显示文档开始的前 k-1 字节
-f, --follow[={name|descriptor}]     动态监视文档最新追加的内容
-n, --lines=K                    k,显示文档结尾的 k 行,+k,不显示文档开始的前 k-1 行
-q, --quiet, --silent              当有多个文件参数时,不输出各个文件名
-s, --sleep-interval=N              与“-f”选项连用,指定监视文件变化时间隔的秒数
--help	    	                 显示此帮助信息并退出
--version                       显示版本信息并退出

实例:

  • 显示  lines.txt 最后 5 行内容
ubuntu:~/test$ cat lines.txt 
01
02
03
04
05
06
07
08
09
10
11
12
ubuntu:~/test$ tail -5 lines.txt 
08
09
10
11
12
ubuntu:~/test$ 
  • 显示 lines.txt 除了 前 9 行内容,从第10行开始
ubuntu:~/test$ tail +10 lines.txt
10
11
12
ubuntu:~/test$ 

Linux:awk命令 NR, FNR,NF

  NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。

  在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。

  NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。

Linux:cut命令详解

  1. 文件内容查看

  2. 显示行中的指定部分,删除文件中指定字段

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。

Linux:sed命令详解

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • -V或--version 显示版本信息。

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :替换,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

 

给定一个文本文件 file.txt,请只打印这个文件中的第十行。

tail -n +10 file.txt | head -1
awk 'NR==10' file.txt
sed -n 10p file.txt
cat -n file.txt | grep -E "^[[:space:]]{4}10" | cut -f1 --complement

  

posted @ 2019-07-15 20:01  Eagle_Fly  阅读(577)  评论(0编辑  收藏  举报