1、cut命令
cut - remove sections from each line of files(数据剪切,即从文件的每行中移除一些部分)
cut OPTION… [FILE]…
选 项 | 作 用 |
---|---|
-b | 以字节为单位进行分割 |
-c | 以字符为单位进行分割 |
-d | 自定义分隔符,默认为制表符 |
-f | 与-d一起使用,指定显示哪个区域 |
-n | 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除 |
这里先给出一段浪漫的文本:
I LOVE YOU and I MISS YOU.
YOU LIKE ME but I DON’T MISS YOU.
① 提取每行第三个字节;
[root@localhost tmp]# cut -b 3 test
L
U
② 提取每行第十二个字符之后的内容(包括十二);
[root@localhost tmp]# cut -c 12- test
and I MISS YOU.
but I DON'T MISS YOU.
③ 以字母"I"为分隔符,提取每行第一个"I"与第二个"I"之间的内容;
[root@localhost tmp]# cut -d "I" -f 2 test
LOVE YOU and
KE ME but
2、sort命令
sort - sort lines of text files(以ASCII 码的次序对文本文件的行进行排序)
sort [OPTION]… [FILE]…
sort [OPTION]… --files0-from=F
选 项 | 作 用 |
---|---|
-f | 忽略大小写 |
-b | 忽略每行最前面的空格符部分 |
-M | 以月份的名字来排序 |
-n | 使用纯数字进行排序 |
-r | 以相反的顺序排序 |
-u | 即uniq,相同的数据只出现一行 |
-t | 指定排序时所用的栏位分隔字符 |
-k | 以指定区间来进行排序 |
-o | 将结果写入到文件中 |
同样还是先给出一段文本(第一个域是公司名称,第二个域是公司人数,第三个域是员工工资,全瞎编的别信哦🤭):
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500
① 按照员工工资降序排序,如果相同,则按照公司人数升序排序;
[root@localhost tmp]# sort -t ' ' -k 3nr -k 2n test //这里去掉-r和-n选项,而将它们加入到了每一个-k选项中了,作用是一样的!
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
②按照公司名称的第二个字母进行排序,如果相同,则按照员工工资降序排序;
[root@localhost tmp]# sort -t ' ' -k 1.2,1.2 -k 3nr test //这里我们使用1.2,1.2的形式对域设置了起始点和终止点。
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
3、uniq命令
uniq - report or omit repeated lines(报告或省略排序过文件的重复行)
tips:既是排序过,可想而知,要使uniq起作用,所有重复行必须是相邻的,因此uniq经常和sort合用。
uniq [OPTION]… [INPUT [OUTPUT]]
选 项 | 作 用 |
---|---|
-c 或 --count | 在每行前面显示该行重复出现的次数 |
-d 或 --repeated | 只显示重复行 |
-D | 显示所有重复行 |
-f | 比较时忽略前N列 |
-i | 忽略大小写区别 |
-s | 比较时跳过前N个字符 |
-w | 只比较N个字符的内容,默认从开始算起,如果和-s使用即从指定位置开始 |
-u | 只显示唯一行 |
-z | 末尾生成0个字节的终止符作为输出(\0),这样的目的就是避免一条记录行因为存在空格被识别为多行 |
一段水果名称组合起来的文本:
Apple
apple
banana
cherry
cherry
peach core
pear core
apple
①跳过第一列字符,并在前面加上重复出现的次数;
[root@localhost tmp]# uniq -c -f1 test
5 Apple
1 peach core
1 pear core
1 apple
②跳过每行的第一个字符,且只比较两位;
[root@localhost tmp]# uniq -s1 -w2 test
Apple
banana
cherry
peach core
apple
4、wc命令
wc - print newline, word, and byte counts for each file(统计指定文件的打行数、字数和字节数并输出)
wc [OPTION]… [FILE]…
wc [OPTION]… --files0-from=F
选 项 | 作 用 |
---|---|
-c | 统计字节数 |
-l | 统计行数 |
-m | 统计字符数。不能与 -c 选项一起使用 |
-w | 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 |
-L | 打印最长行的长度 |
浪漫文本来了:
Cold here, icy cold there.
You belong to neither, leaves have withered.
Your face is pale and blue, a tearful smile.
Something in your eyes, whispers words of last good-bye.
My heart sinks down, tears surge out.
查询这段文本的字节数、行数、字数以及最长行的长度;
[root@localhost tmp]# wc -clwL test
5 37 211 56 test