文本工具来查看、分析、统计,比较
文章目录
- 一、文件查看命令
- 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
文本工具来查看、分析、统计,比较相关推荐
- linux文本工具总结,Linux 文本工具
各种文本工具来查看.分析.统计文本 grep :文本过滤(模式 pattern)工具 grep[OPTIONS] PATTERN FILE --. 查看在/etc/passwd 文件中含有 ...
- 苹果自带的APP下载分析统计工具
对于APP运营的工作人员,查看APP的下载量和访问量是非常重要的.当然,我们开发人员有时候也会想看看自己开发的APP有多少人在使用,但是苹果开发者官网一直没有提供这个功能,一些第三方的网站,比如蒲公英 ...
- Oracle10表数据编辑器,Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式)...
Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式) 在实际生产环境中,常会碰到将一些如通过通讯接口传过来的数据(文本文件 txt) ...
- java dump分析工具_java性能分析与常用工具
本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...
- kernel32.dll已加载但找不到入口点_关键词分析法和工具,关键词分析包括哪几个方面(已帮助1376人)...
内容导读关键词分析是极其重要的环节,如果关键词分析做好了,优化工作就能事半功倍.大家在做关键词分析的时候,可以参考本文提到的这些方面,应该能够得到很多有用的启示和指导. 做网站优化或者是百度竞价等,分 ...
- python代码覆盖率工具_Python代码覆盖率分析工具Coverage
简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...
- insert转update工具_mysql binlog 分析工具
用于回滚工具: binlog2sql 分析问题工具: analysis_binlog(https://gitee.com/mo-shan/analysis_binlog) 介绍 分析binlog工具, ...
- 基于多模型融合的用户画像分析统计方法研究
摘 要 随着信息技术的快速发展和大数据技术的广泛应用,企业的营销和产品的设计,对精细化.精准化的要求越来越高.主流的电商平台.搜索引擎以及短视频平台均推出了基于用户画像的个性化推荐服务,这其中相当一 ...
- 《文本大数据情感分析》读书报告
<文本大数据情感分析>(高凯 徐华 王九硕 岳重阳 高成亮著)一书介绍社交网络等海量异构信息采集算法:对文本挖掘与自然语言处理中涉及到情感分析.微博情绪诱因分析.电商产品评价与意见挖掘等内 ...
最新文章
- Docker从入门到实践
- Java6.0中Comparable接口与Comparator接口详解
- STM32移植UCGUI3.90笔记
- MySQL小问题:导入employee测试数据
- gnu grub修复_如何修复grub异常
- Net需要掌握的知识
- CCF201712试题
- python基础代码大全-python文件及目录操作代码汇总
- 6.Prometheus 监控技术与实践 --- 告警处理
- 新CEO能使诺基亚起死回生吗?
- Jvisualvm简单使用教程
- 30款前端特效源码分享
- html 在线申请,25个在线工作申请免费HTML的简历模板
- Linux qt教程 qt入门(一)
- IE9,10收藏夹同步方法
- 个人怎么做独立站Shopify商店!Shopify建站教程详解!(实操干货)
- 【十四】MySQL Innodb RR隔离级别下到底是不是解决了幻读
- switzerland, we're coming
- android 创意app,创意无止境!17款让人脑洞大开的APP推荐
- 弘辽科技:多多进宝的优势你都了解清楚了吗?