1、文件内容查看命令
1.1、cat
cat 可以查看文本内容
cat [OPTION]... [FILE]...
- -E 显示行结束符$
- -A 显示所有控制符
- -n 对显示出的每一行进行编号
- -b 非空行编号
- -s 压缩连续的空行成一行
#范例
[root@centos79_test ~]# cat hello.log
hello world1
hello world11
hello world111
hello world1111
hello world11111
hello world111111
[root@centos79_test ~]# cat -A hello.log
hello world1$
hello world11$
hello world111$
hello world1111$
hello world11111$
hello world111111$
[root@centos79_test ~]# cat -n hello.log
1 hello world1
2 hello world11
3 hello world111
4 hello world1111
5 hello world11111
6 hello world111111
1.2、nl
显示行号,相当于cat -b
#范例
[root@centos79_test ~]# nl hello.log
1 hello world1
2 hello world11
3 hello world111
4 hello world1111
5 hello world11111
6 hello world111111
1.3、tac
逆向显示文本内容
#范例
[root@centos79_test ~]# tac hello.log
hello world111111
hello world11111
hello world1111
hello world111
hello world11
hello world1
1.4、rev
将同一行的内容逆向显示
#范例
[root@centos79_test ~]# rev hello.log
1dlrow olleh
11dlrow olleh
111dlrow olleh
1111dlrow olleh
11111dlrow olleh
111111dlrow olleh
1.5、查看非文本文件内容
#范例
[root@centos79_test ~]# hexdump -C hello.log
00000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 31 0a 68 65 6c |hello world1.hel|
00000010 6c 6f 20 77 6f 72 6c 64 31 31 0a 68 65 6c 6c 6f |lo world11.hello|
00000020 20 77 6f 72 6c 64 31 31 31 0a 68 65 6c 6c 6f 20 | world111.hello |
00000030 77 6f 72 6c 64 31 31 31 31 0a 68 65 6c 6c 6f 20 |world1111.hello |
00000040 77 6f 72 6c 64 31 31 31 31 31 0a 68 65 6c 6c 6f |world11111.hello|
00000050 20 77 6f 72 6c 64 31 31 31 31 31 31 0a | world111111.|
0000005d
2、分页查看文件内容
2.1、more
可以实现分页查看文件,可以配合管道实现输出信息的分页
more [OPTIONS...] FILE...
-d: 显示翻页及退出提示
2.2、less
less 也可以实现分页查看文件或STDIN输出,less 命令是man命令使用的分页器
/文本 搜索 文本
n/N 跳到下一个 或 上一个匹配
3、显示文本前面或后面的行内容
3.1、head
可以显示文件或标准输入的前面行
head [OPTION]... [FILE]...
- -c # 指定获取前#字节
- -n # 指定获取前#行,#如果为负数,表示从文件头取到倒数第#前
- -# 同上
#范例
[root@centos79_test ~]# head -n 3 /etc/passwd
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@centos79_test ~]# head -3 /etc/passwd
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@centos79_test ~]# head -c 31 /etc/passwd
root:x:0:0:root:/root:/bin/bash
3.2、tail
tail 和head 相反,查看文件或标准输入的倒数行
tail [OPTION]... [FILE]...
- -c # 指定获取后#字节
- -n # 指定获取后#行,如果#是负数,表示从第#行开始到文件结束
- -# 同上
- -f 跟踪显示文件fd新追加的内容,常用日志监控,相当于 –follow=descriptor,当文件删除再新建同名文件,将无法继续跟踪文件
- -F 跟踪文件名,相当于–follow=name –retry,当文件删除再新建同名文件,将可以继续跟踪文件
- tailf 类似 tail –f,当文件不增长时并不访问文件,节约资源,CentOS8已经无此工具
#范例
[root@centos79_test ~]# tail -n 3 /etc/passwd
test:x:1000:1000::/home/test:/bin/bash
user1:x:1001:1002::/home/user1:/bin/bash
user2:x:1002:1003::/home/user2:/bin/bash
![图片[1]-文本常见处理工具-李佳程的个人主页](http://39.101.72.1/wp-content/uploads/2022/11/image-34.png)
![图片[2]-文本常见处理工具-李佳程的个人主页](http://39.101.72.1/wp-content/uploads/2022/11/image-35.png)
4、按列抽取文本 cut
cut 命令可以提取文本文件或STDIN数据的指定列
cut [OPTION]... [FILE]...
- -d DELIMITER: 指明分隔符,默认tab
- -f FILEDS:
- #: 第#个字段,例如:3
- #,#[,#]: 离散的多个字段,例如:1,3,6
- #-#: 连续的多个字段, 例如:1-6
- 混合使用:1-3,7
- -c 按字符切割
- –output-delimiter=STRING指定输出分隔符
#范例
[root@centos79_test ~]# ifconfig | head -2 | tail -1 | cut -d" " -f10
192.168.1.10
[root@centos79_test ~]# ifconfig |head -n2 |tail -n1|tr -s " "
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
[root@centos79_test ~]# ifconfig |head -n2 |tail -n1|tr -s " " |cut -d" " -f3
192.168.1.10
5、合并多个文件 paste
paste 合并多个文件同行号的列到一行
paste [OPTION]... [FILE]...
- -d #分隔符:指定分隔符,默认用TAB
- -s #所有行合成一行显示
6、分析文本的工具
- 文本数据统计:wc
- 整理文本:sort
- 比较文件:diff和patch
6.1、收集文本统计数据 wc
wc 命令可用于统计文件的行总数、单词总数、字节总数和字符总数
可以对文件或STDIN中的数据统计
- -l 只计数行数
- -w 只计数单词总数
- -c 只计数字节总数
- -m 只计数字符总数
- -L 显示文件中最长行的长度
6.2、文本排序 sort
把整理过的文本显示在STDOUT,不改变原始文件
sort [options] file(s)
- -r 执行反方向(由上至下)整理
- -R 随机排序
- -n 执行按数字大小整理
- -h 人类可读排序,如: 2K 1G
- -f 选项忽略(fold)字符串中的字符大小写
- -u 选项(独特,unique),合并重复项,即去重
- -t c 选项使用c做为字段界定符
- -k # 选项按照使用c字符分隔的 # 列来整理能够使用多次
6.3、去重 uniq
uniq命令从输入中删除前后相接的重复的行
uniq [OPTION]... [FILE]...
- -c 显示每行重复出现的次数
- -d 仅显示重复过的行
- -u 仅显示不曾重复的行
#范例
#统计日志访问量最多的请求
cut -d" " -f1 access_log |sort |uniq -c|sort -nr |head -3
lastb -f btmp-34 | tr -s ' ' |cut -d ' ' -f3|sort |uniq -c |sort -nr | head -3
6.4、比较文件
diff 命令比较两个文件之间的区别
- -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件
patch 复制在其它文件中进行的改变(要谨慎使用)
- -b 选项来自动备份改变了的文件
vimdiff 相当于 vim -d
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END