文本工具常用用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本工具常用用法相关的知识,希望对你有一定的参考价值。

1、head命令
显示文档前面指定的区域
-n <行数>:指定显示内容的行数
-c <字符数>:指定显示内容的字符数
-v :总是显示文件名 (查看多文件的时候默认显示文件名)
-q :不显示文件 (查看多文件可以隐藏文件名)

显示前面三行

[[email protected] ~]# head -n3 /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

 

显示前面三个字节

[[email protected] ~]# head -c3 /etc/passwd 
roo

 

显示文件名称

[[email protected] ~]# head -v -n3 /etc/passwd 
==> /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

 

同时显示多个文件的前面三行

[[email protected] ~]# head -v -n3 /etc/passwd /etc/my.cnf 
==> /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

==> /etc/my.cnf <==
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

 

 


2、tail命令
显示文档后面指定的区域
-n <行数>: 显示文件尾部行数(查看多文件默认显示文件名)
-q: 查看多文件内容时,不显示文件名
-f: 显示追加的内容,监视文件的变化

显示尾部三行

[[email protected] ~]# tail -n3 /etc/passwd
ntp:x:38:38::/etc/ntp:/sbin/nologin
coremail:x:500:500::/home/coremail:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

 

实时更新messages内容到屏幕

[[email protected] ~]# tailf /var/log/messages
Feb 18 05:39:02 app rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="895" x-info="http://www.rsyslog.com"] rsyslogd was HUPed

 

3、wc 命令
-l:统计文件行数
-c: 统计文件字节数
-m:统计文件字符数
-L:计算文件中最长行的长度

[[email protected] ~]# wc -l /etc/passwd
23 /etc/passwd

 

[[email protected] ~]# wc -m /etc/passwd
1037 /etc/passwd

 

[[email protected] ~]# wc -c /etc/passwd
1037 /etc/passwd

 

[[email protected] ~]# wc -L /etc/passwd
68 /etc/passwd

 

4、cut命令
-b <起始字节位置-结束字节位置>:仅显示指定的字节范围的内容
-c <起始字符位置-结束字符位置>:仅显示指定的字符范围的内容
-d <字段分隔符>:指定字段分隔符,默认是"tab"
-f <起始字段位置-结束字段位置>:显示指定的字段内容(和-d连用)
-n : 与-b连用,不分割多字节字符
-s : 不显示未包含分隔符的行
--output-delimiter :指定输出内容的字符分隔符

显示每行2-10个字节

[[email protected] ~]# head -n3 /etc/passwd |cut -b 2-10
oot:x:0:0
in:x:1:1:
aemon:x:2

 

显示每行2-10个字符

[[email protected] ~]# head -n3 /etc/passwd |cut -c 2-10
oot:x:0:0
in:x:1:1:
aemon:x:2

 

使用指定分隔符,显示第一列

[[email protected] ~]# head -n3 /etc/passwd |cut -d: -f1 
root
bin
daemon

 

同上

[[email protected] ~]# head -n3 /etc/passwd |cut -d":" -f1 
root
bin
daemon

 

使用指定分隔符,显示1,2,3列

[[email protected] ~]# head -n3 /etc/passwd |cut -d : -f1,2,3 
root:x:0
bin:x:1
daemon:x:2

 

使用自定义的分隔符,显示1,2,3列

[[email protected] ~]# head -n3 /etc/passwd |cut -d : -f1,2,3 --output-delimiter="+"
root+x+0
bin+x+1
daemon+x+2

 

5、sort命令
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o <输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t <分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。

-u 去处重复

[[email protected] ~]# sort -u a.log 
filesystem-2.4.30-3.el6.x86_64
libgcc-4.4.7-4.el6.x86_64
setup-2.8.14-20.el6_4.1.noarch
xml-common-0.6.3-32.el6.noarch

 


-r 倒序排列

[[email protected] ~]# sort -r a.log 
xml-common-0.6.3-32.el6.noarch
setup-2.8.14-20.el6_4.1.noarch
libgcc-4.4.7-4.el6.x86_64
filesystem-2.4.30-3.el6.x86_64

 

-n 使用数值排序

[[email protected] ~]# sort -n a.log 
filesystem-2.4.30-3.el6.x86_64
libgcc-4.4.7-4.el6.x86_64
setup-2.8.14-20.el6_4.1.noarch
xml-common-0.6.3-32.el6.noarch

 

-k 指定字段排序(需要和-t配合使用)

[[email protected] ~]# sort -n -k 2 -t - a.log 
xml-common-0.6.3-32.el6.noarch
filesystem-2.4.30-3.el6.x86_64
setup-2.8.14-20.el6_4.1.noarch
libgcc-4.4.7-4.el6.x86_64

 

6、uniq命令

-c :在行首显示重复的次数
-d :只显示重复的内容,重复的行只输出一次
-D :只显示重复的内容,重复所有内容
-i : 忽略大小写
-u :只显示不重复的行


在行首显示重复的次数

[[email protected] ~]# sort abc |uniq -c
2 a
1 A
2 aaa
1 b
1 bbb
1 ccc

 

忽略大小写

[[email protected] ~]# sort abc |uniq -ic
3 a
2 aaa
1 b
1 bbb
1 ccc

 

[[email protected] ~]# sort abc |uniq -d
a
aaa

 

[[email protected] ~]# sort abc |uniq -D
a
a
aaa
aaa

 

只显示不重复的行

[[email protected] ~]# sort abc |uniq -u
A
b
bbb
ccc

 

以上是关于文本工具常用用法的主要内容,如果未能解决你的问题,请参考以下文章

文本处理工具grep常用命令

文本处理工具awk常用命令

html5常用标记及用法?

文本处理工具AWK简单用法案例

linux中grep命令的用法

linux中grep命令的用法(转)