文章目录

  • 一、文件查看命令
    • cat 由第一行开始显示文件内
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
    • nl 显示行号
    • more 一页一页翻动查看文件
      • 在 more 这个程序的运行过程中,你有几个按键可以按的:
    • less 一页一页翻动查看文件或STDIN输出 ,但是比 more 更好的是,他可以往前翻页!
      • less运行时可以输入的命令有:
    • head 指定获取前几行
    • tail 取出文件后面几行
  • 二、文本抽取工具
    • cut 命令用于显示每行从开头算起 num1 到 num2 的文字
  • 三、合并文件
    • paste 命令用于合并文件的列
    • 按行合并用 cat&按列合并用 paste
  • 四、分析文本工具
    • wc 计数
    • sort 排序
    • uniq 去除重复行,只会去除相连的重复行
    • 比较文件:
      • diff
      • patch
        • diff 备份基础上 patch恢复(要谨慎使用)

文本工具来查看、分析、统计,比较

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容

  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

  • nl 显示的时候,顺道输出行号!

  • more 一页一页的显示文件内容

  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

  • head 只看头几行

  • tail 只看尾巴几行

  • cut 命令用于显示每行从开头算起 num1 到 num2 的文字

  • paste 命令用于合并文件的列

  • wc 计数

  • sort 排序

  • uniq 去除重复行

  • 比较文件:diff和patch

一、文件查看命令

cat 由第一行开始显示文件内

由第一行开始显示文件内容

语法:

cat [-AbEnTv]

选项与参数:

  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符
[root@centos6 ~]#cat test.txt                       #普通查看,文本什么内容就会显示什么内容
qeqwq
qwe
qwe
[root@centos6 ~]#cat -E test.txt                        #显示结束符,即$
qeqwq$
qwe$
qwe$
[root@centos6 ~]#cat -n test.txt                    #会在每一行前面进行编号1  qeqwq2  qwe3  qwe

tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

[root@www ~]# tac /etc/issueKernel \r on an \m
CentOS release 6.4 (Final

nl 显示行号

语法:

nl [-bnw] 文件

选项与参数:

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。

实例一:用 nl 列出 /etc/issue 的内容

[root@www ~]# nl /etc/issue1  CentOS release 6.4 (Final)2  Kernel \r on an \m

more 一页一页翻动查看文件

选项:

  • -d: 显示翻页及退出提示
[root@www ~]# more /etc/man_db.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
  • 空白键 (space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

less 一页一页翻动查看文件或STDIN输出 ,但是比 more 更好的是,他可以往前翻页!

以下实例输出/etc/man.config文件的内容:

[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
:   <== 这里可以等待你输入命令!
less运行时可以输入的命令有:
  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;

head 指定获取前几行

语法:

head [-n number] 文件

选项与参数:

  • -c :后面接数字,指定获取前几字节 的意思
  • -n :后面接数字,指定获取前几行 的意思
  • -# :指定行#号
[root@centos6 ~]#head -c 1 /etc/passwd                     #指定显示文件第一个字节
r[root@centos6 ~]#head -c 3 /etc/passwd                        #指定显示文件的前3个字节
roo[root@centos6 ~]#
[root@centos6 ~]#head -n 3 /etc/passwd                     #指定显示文件的前3行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@centos6 ~]#head -3 /etc/passwd                    #指定显示文件前3行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

tail 取出文件后面几行

tail查看某文件的后面

  • -c 后面接数字, 指定获取后面几字节
  • -n 后面接数字,指定获后面几行
  • -# 指定获后面几行
  • -f 表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测,常用日志监控也可以用来查看,配合监测命令watch,watch -n 0.1 cat test.txt 也可以直接tailf 来使用
  • tailf 类似tail –f,当文件不增长时并不访问文件
[root@centos6 ~]#tail -c 10 /etc/passwd                     #显示文件后10个字节
/bin/bash
[root@centos6 ~]#tail 10 /etc/passwd              #默认显示文件的后10行
[root@centos6 ~]#tail -f 10 /etc/passwd         #监控后10行
[root@centos6 ~]#watch -n 0.1 cat test.txt             #每隔0.1秒查看一次该文件来达到监控 下面是效果图

二、文本抽取工具

cut 命令用于显示每行从开头算起 num1 到 num2 的文字

  • -d 分隔符:指明分隔符,默认为tab

  • -f # :指定抽取多少列,

    ​ #:可以为一列,

    ​ #-#:也可以取一个范围1-10

    ​ #,#[,#]:也可以分别取多少列1,2,3

  • -c # :根据字符分割

示例:

[root@ecs-c2c9 ~]# cat /etc/passwd| cut -d: -f1 |head -n 2  #根据:为分隔符,取第一列
root
bin
[root@ecs-c2c9 ~]# cat /etc/passwd| cut -d: -f1,3,5 |head -n 2  根据:为分隔符,取第1.3.5列
root:0:root
bin:1:bin
[root@ecs-c2c9 ~]# cat /etc/passwd| cut -d: -f1-3,5 |head -n 2  根据:为分隔符,取第1-3.5列
root:x:0:root
bin:x:1:bin

三、合并文件

paste 命令用于合并文件的列

paste 指令会把每个文件以列对列的方式,一列列地加以合并

  • -d 分隔符:指定两个文件合并后的分隔符,默认为tab
  • -s 所有行合成一行显示、

实例:

使用paste指令将文件"file"、“testfile”、"testfile1"进行合并,输入如下命令:

paste file testfile testfile1 #合并指定文件的内容

但是,在执行以上命令之前,首先使用"cat"指令对3个文件内容进行查看,显示如下所示:

$ cat file                  #file文件的内容
xiongdan 200
lihaihui 233
lymlrl 231
$ cat testfile              #testfile文件的内容
liangyuanm  ss
$ cat testfile1             #testfile1文件的内容
huanggai 56
zhixi 73

当合并指令"$ paste file testfile testfile1"执行后,程序界面中将显示合并后的文件内容,如下所示

xiongdan 200
lihaihui 233
lymlrl 231
liangyuanm  ss
huanggai 56
zhixi 73

若使用paste指令的参数"-s",则可以将一个文件中的多行数据合并为一行进行显示。例如,将文件"file"中的3行数据合并为一行数据进行显示,输入如下命令

$ paste -s file             #合并指定文件的多行数据

上面的命令执行后,显示的数据内容如下所示:

xiongdan 200 lihaihui 233 lymlrl 231

注意:参数"-s"只是将testfile文件的内容调整显示方式,并不会改变原文件的内容格式。

按行合并用 cat&按列合并用 paste

​ 按行合并,即数据是一行一行拼接,用 cat。

​ 按列合并,则用 paste。

[root@ecs-c2c9 ~]# more ts1   //查看文件ts1
1
2
$ more ts2   //查看文件ts2
cat
paste
[root@ecs-c2c9 ~]# cat ts1 ts2  //按行合并
1
2
cat
paste
[root@ecs-c2c9 ~]# paste ts1 ts2 //按列合并
1 cat
2 paste

若是要生成新的文件来存放合并的文件则可用如下命令:

[root@ecs-c2c9 ~]# cat ts1 ts2 > new_row.txt        //生成新的文件new_row.txt
[root@ecs-c2c9 ~]# paste ts1 ts2 > new_col     //生成新的文件new_col,文件格式一般为.txt,在linux中可不加,因为系统可以识别不加.txt的文件

通常是合并 n 个文件,常用:

$ cat * > new_file //合并当前目录下的所有文件

四、分析文本工具

文本数据统计:wc

整理文本:sort

比较文件:diff和patch

wc 计数

单词总数、行总数、字节总数和字符总数

可以对文件或STDIN中的数据运行 :

[root@ecs-c2c9 ~]# wc /etc/passwd36   64 1731 /etc/passwd
​行数 字数 字节数

常用选项

  • -l: 只计数行数
  • -w:只计数单词总数
  • -c: 只计数字节总数
  • -m:只计数字符总数
  • -L 显示文件中最长行的长度
[root@centos6 ~]#cat /etc/passwd| wc        //显示行数,单词数,字节数             40      60    1868
[root@centos6 ~]#cat /etc/passwd| wc -l
40
[root@centos6 ~]#cat /etc/passwd| wc -w
60
[root@centos6 ~]#cat /etc/passwd| wc -c
1868
[root@centos6 ~]#cat /etc/passwd| wc -m
1868

sort 排序

把整理过的文本显示在STDOUT,不改变原始文件

sort  选项  文件

常用选项

  • -r:执行反向整理
  • -n:按数字大小整理
  • -f:忽略字符创中的字符大小写
  • -u:选项删除输出中的重复行
  • -t 分隔符:选项使用分隔符作为字段界定符
  • -k #:按照-t指定的分隔符,指定第#列来整理
[root@centos6 ~]#cat /etc/passwd|head -n 4|sort    #排序
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash[root@centos6 ~]#cat /etc/passwd|head -n 4|sort -nr           #排序,根据数字排列,并且反向显示
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin[root@centos6 ~]#cat /etc/passwd|head -n 4|sort -t: -k3        #指定分隔符:,并且去第3列
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[root@centos6 ~]#cat /etc/passwd|head -n 4|sort -t: -k3 -r         #指定分隔符:,并且去第3列,去反向即倒序排列
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

uniq 去除重复行,只会去除相连的重复行

从输入中删除前后相接的重复的行

选项:

  • -c:显示每行重复出现的次数

  • -d:仅显示重复过的行

  • -u:仅显示不曾重复的行

    连续且完全相同方为重复

  • 常和sort 命令一起配合使用: sort userlist.txt | uniq -c

[root@centos6 ~]#cat test.txt |sort -n          qeqwq
qwe
qwe
qwe
qwe
qwe
rrr
[root@centos6 ~]#cat test.txt |sort -n | uniq           #去除重复行,一般去除重复行之前都会进行排序qeqwq
qwe
rrr
[root@centos6 ~]#cat test.txt |sort -n | uniq -c      #在文本前面显示重复的次数2 1             1 qeqwq5 qwe1 rrr
[root@centos6 ~]#cat test.txt |sort -n | uniq -d        #只会显示重复的行qwe
[root@centos6 ~]#cat test.txt |sort -n | uniq -u          #只显示不重复的行qeqwq
rrr

比较文件:

diff

diff 命令的输出被保存在一种叫做“补丁”的文件中

  • 使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用 于补丁文件

patch

patch 复制在其它文件中进行的改变(要谨慎使用)

  • 适用 -b 选项来自动备份改变了的文件

$ diff -u foo.conffoo2.conf> foo.patch

$ patch-b foo.conffoo.patch

diff比较两个文件 和patch 两个文件进比较 常用语补丁,

diff 备份基础上 patch恢复(要谨慎使用)

当进行一下操作时,用test和test1进行备份,当test被删除,执行一下操作,test1将变成test文件内容

[root@ecs-c2c9 ~]# diff test test1                   #两个文件进行比较
1,2c1,2
< 1111
< 1111
---
> aaa
> aaaa
[root@ecs-c2c9 ~]# diff -u test test1 > foo.patck   #进行备份,不过是两个文件进行比较过的补丁文件
You have new mail in /var/spool/mail/root
[root@ecs-c2c9 ~]# cat foo.patck
--- test    2020-05-22 16:46:50.689589986 +0800
+++ test1    2020-05-22 16:48:48.629018396 +0800
@@ -1,4 +1,4 @@
-1111
-1111
+aaa
+aaaa22222222       [root@ecs-c2c9 ~]# cat test
1111
1111
2222
2222
[root@ecs-c2c9 ~]# cat test1
aaa
aaaa
2222
2222[root@ecs-c2c9 ~]# rm -rf test
[root@ecs-c2c9 ~]# patch  -b test1 foo.patck    #还原文件
patching file test1
Reversed (or previously applied) patch detected!  Assume -R? [n] y
[root@ecs-c2c9 ~]# ls
111  123  anaconda-ks.cfg  foo.patck  passwd  test1  test1.orig
[root@ecs-c2c9 ~]# cat test1.orig      #将变成test1
aaa
aaaa
2222
2222
[root@ecs-c2c9 ~]# cat test1           #变成test的内容
1111
1111
2222
2222

文本工具来查看、分析、统计,比较相关推荐

  1. linux文本工具总结,Linux 文本工具

    各种文本工具来查看.分析.统计文本 grep :文本过滤(模式  pattern)工具 grep[OPTIONS]   PATTERN   FILE --. 查看在/etc/passwd 文件中含有 ...

  2. 苹果自带的APP下载分析统计工具

    对于APP运营的工作人员,查看APP的下载量和访问量是非常重要的.当然,我们开发人员有时候也会想看看自己开发的APP有多少人在使用,但是苹果开发者官网一直没有提供这个功能,一些第三方的网站,比如蒲公英 ...

  3. Oracle10表数据编辑器,Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式)...

    Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式) 在实际生产环境中,常会碰到将一些如通过通讯接口传过来的数据(文本文件 txt) ...

  4. java dump分析工具_java性能分析与常用工具

    本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...

  5. kernel32.dll已加载但找不到入口点_关键词分析法和工具,关键词分析包括哪几个方面(已帮助1376人)...

    内容导读关键词分析是极其重要的环节,如果关键词分析做好了,优化工作就能事半功倍.大家在做关键词分析的时候,可以参考本文提到的这些方面,应该能够得到很多有用的启示和指导. 做网站优化或者是百度竞价等,分 ...

  6. python代码覆盖率工具_Python代码覆盖率分析工具Coverage

    简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...

  7. insert转update工具_mysql binlog 分析工具

    用于回滚工具: binlog2sql 分析问题工具: analysis_binlog(https://gitee.com/mo-shan/analysis_binlog) 介绍 分析binlog工具, ...

  8. 基于多模型融合的用户画像分析统计方法研究

    摘  要 随着信息技术的快速发展和大数据技术的广泛应用,企业的营销和产品的设计,对精细化.精准化的要求越来越高.主流的电商平台.搜索引擎以及短视频平台均推出了基于用户画像的个性化推荐服务,这其中相当一 ...

  9. 《文本大数据情感分析》读书报告

    <文本大数据情感分析>(高凯 徐华 王九硕 岳重阳 高成亮著)一书介绍社交网络等海量异构信息采集算法:对文本挖掘与自然语言处理中涉及到情感分析.微博情绪诱因分析.电商产品评价与意见挖掘等内 ...

最新文章

  1. Docker从入门到实践
  2. Java6.0中Comparable接口与Comparator接口详解
  3. STM32移植UCGUI3.90笔记
  4. MySQL小问题:导入employee测试数据
  5. gnu grub修复_如何修复grub异常
  6. Net需要掌握的知识
  7. CCF201712试题
  8. python基础代码大全-python文件及目录操作代码汇总
  9. 6.Prometheus 监控技术与实践 --- 告警处理
  10. 新CEO能使诺基亚起死回生吗?
  11. Jvisualvm简单使用教程
  12. 30款前端特效源码分享
  13. html 在线申请,25个在线工作申请免费HTML的简历模板
  14. Linux qt教程 qt入门(一)
  15. IE9,10收藏夹同步方法
  16. 个人怎么做独立站Shopify商店!Shopify建站教程详解!(实操干货)
  17. 【十四】MySQL Innodb RR隔离级别下到底是不是解决了幻读
  18. switzerland, we're coming
  19. android 创意app,创意无止境!17款让人脑洞大开的APP推荐
  20. 弘辽科技:多多进宝的优势你都了解清楚了吗?

热门文章

  1. Mac删除多余的输入输出设备,删除EasyConnectAudio
  2. Linux write through 和write back
  3. C语言程序设计卢萍,卢萍
  4. [因子背包] CF1647D Madoka and the Best School in Russia
  5. 微信小程序云开发及背后的云服务支持。
  6. 多方协同,华为云IoT ,加速批量交付
  7. C语言 互斥量(加锁)解决同步问题
  8. 面试前夕,我建议你还是先来看看阿里和京东面试都问些啥?
  9. 基于QT的华为网络摄像头二次开发
  10. CSMA/CA基本原理