0
点赞
收藏
分享

微信扫一扫

文件管理(4)

文件管理

[toc]

去重命令

命令:uniq

#语法
uniq 选项  文件名

#选项
-c: 统计重复次数
#去重只能去连续的行,所以要配合sort排序命令,再进行去重,和sort一样去重也不会改原里的内容

#注意
去重为什么要配合sort的原因,文件中内容如下,因为1和1之间有个2,即使去重还是1 2 1,必须要是连续的行才会去重,所以要搭配sort命令

不连续                         连续                 去重后
1                               1                   1
2                               1                   2
1                               2
------------------

选项:-c
[root@ltl ~]# sort 文件名 | uniq -c
#前面是统计重复的次数,后面是文本中的内容

2       1
1       2

文件内容截取命令

命令:cut

#语法
cut  选项  文件名

#注意
cut默认分隔符是制表符,也就是Tab键,基本可以视为没有分隔符,所以必须要指定一个分隔符,不然对cut而言,你就是要取所有内容

#选项
-d:指定分隔符
-f:取列,选择要打印的列内容
-c:按照字符来取内容

## 曾老师的举例
cat  info.txt 
I'm zls,18 years old QQ 133411023
I'm wyk,73 years old QQ 383838384

-d:-d和-f 两者相辅相成,必须搭配使用
# -d -f   曾老师的举例
[root@localhost ~]# cut -d ' ' -f 2 info.txt |cut -d ',' -f 2
18
73
取年龄内容,先以空格为分隔符,取以空格为分割的第二列,是zls,18和wyk,73这俩内容
然后再交给管道符右边的cut进行处理,右边的cut 以 ,号为分隔符,取第二列就结束了

-c:按字符内容取
#简单,但是缺点是要数字符数,且文本不一定全部对齐
# -c
[root@localhost ~]# cat info.txt
I'm zls,18 years old QQ 133411023
I'm wyk,73 years old QQ 383838384
[root@localhost ~]# cut -c 9-10 info.txt
18
73
[root@localhost ~]# cut -c 25-33 info.txt
133411023
383838384

#取年龄需要数到年龄所在的位数,第九位到第十位是年龄,但是要qq的时候需要数25到33的位置,很麻烦,而且文本内容不一定能对齐

文件统计命令

wc:统计文件的行数,统计文件的单词数量,统计文件的字符数量
## 语法
wc 选项 文件名
## 选项
-l:line 行,统计行数
-w:word 单词,统计单词数
-c:char 字符,统计字符数

## 曾老师的举例
[root@localhost ~]# wc /etc/services
 11176   61033  670293 /etc/services
文件行数 单词数量 字符数量

注意点:新文件不知道多少行,多少单词,多少字符时,用wc更方便,cat虽然可以打印行号,但是会占据内存,如果内容过大,可能会出现内存爆满情况,所以先用wc查看是保险的,
#字符数量是包括换行符的,换行符就是每行最后一个字母后面的一个空位

文件管理(4).png

举报

相关推荐

0 条评论