Shell 文本处理命令

2020-08-26 22:11:55 浏览数 (1)

cut命令

cut命令可以按指定的分隔符分割成多列 命令:

代码语言:javascript复制
-d切割字符
-f列的第几个参数
-c1-10指定字符串范围行的第一个到第十个

例子: 按字段筛选,输出第一列和第二列

代码语言:javascript复制
[root@linux /]# cat xxx.txt 
123 456 aaa:789
654 321 bbb:000
abc def ccc:ghi
[root@linux /]# cut -d " " -f1 xxx.txt 
123
654
abc
[root@linux /]# cut -d " " -f1,2 xxx.txt 
123 456
654 321
abc def

sort命令

sort命令常用参数:

代码语言:javascript复制
-n    按字符串数值排序,与-g区别为不转为浮点数
-g    按通用数值排序,支持科学计数法
-f    忽略大小写,默认大小写字母不同
-k    排序从POS1开始,若指定POS2,则POS2结束,否则以pos1排序
-t    指定列的分割符
-r    降序排序,默认为升序
-h    使用易读性数字(例如: 2K 1G)
-u    去除重复的行
-o    将输出写入文件

默认排序 默认情况下,sort命令,以字母序进行文本排序,如下:

代码语言:javascript复制
[root@linux /]# cat xxx.txt
123 456 aaa:789
123 456 aaa:789
654 321 bbb:000
dvf ebq evs:sfb
abc def ccc:ghi

[root@linux /]# sort xxx.txt
123 456 aaa:789
123 456 aaa:789
654 321 bbb:000
abc def ccc:ghi
dvf ebq evs:sfb

数字排序 如果想对数字进行排序,可以使用-n参数

代码语言:javascript复制
[root@linux /]# cat xxx.txt
123 456 aaa:789
654 321 bbb:000
123 456 aaa:789
dvf ebq evs:sfb
abc def ccc:ghi

[root@linux /]# sort xxx.txt -n
abc def ccc:ghi
dvf ebq evs:sfb
123 456 aaa:789
123 456 aaa:789
654 321 bbb:000

文件夹大小排序

代码语言:javascript复制
[root@linux xxx]# du -h
420K    ./cobaltstrike/third-party
24K    ./cobaltstrike/data
264K    ./cobaltstrike/logs/200807/172.16.0.1/screenshots
280K    ./cobaltstrike/logs/200807/172.16.0.1
292K    ./cobaltstrike/logs/200807
296K    ./cobaltstrike/logs
24M    ./cobaltstrike
24M    .

[root@linux xxx]# du -h ./ |sort -hr
24M    ./cobaltstrike
24M    ./
420K    ./cobaltstrike/third-party
296K    ./cobaltstrike/logs
292K    ./cobaltstrike/logs/200807
280K    ./cobaltstrike/logs/200807/172.16.0.1
264K    ./cobaltstrike/logs/200807/172.16.0.1/screenshots
24K    ./cobaltstrike/data

对文件内容进行去重 如果文件内容有很多重复的,需要进行去重。sort也是支持的,可以通过-u参数使用

代码语言:javascript复制
[root@linux /]# cat xxx.txt 
123 456 aaa:789
654 321 bbb:000
123 456 aaa:789
dvf ebq evs:sfb
abc def ccc:ghi

[root@linux /]# sort xxx.txt -u
123 456 aaa:789
654 321 bbb:000
abc def ccc:ghi
dvf ebq evs:sfb

wc命令

wc命令参数:

代码语言:javascript复制
wc -l file  #统计行数
wc -w file  #统计单词数
wc -c file  #统计字符数

例子:

代码语言:javascript复制
[root@linux /]# cat xxx.txt|wc -l
5

[root@linux /]# cat xxx.txt|wc -w
15

[root@linux /]# cat xxx.txt|wc -m
80

uniq命令

代码语言:javascript复制
uniq -c 去除重复的字符   -c列出重复个数

0 人点赞