首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shell编程第七弹-基本文本处理

一、排序sort

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。

选项参数:

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b :忽略最前面的空格符部分;

-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;

-n :使用『纯数字』进行排序(默认是以文字型态来排序的);

-r :反向排序;

-u :就是 uniq ,输出行中去除重复行。;

-t :分隔符,默认是用 [tab] 键来分隔;

-k :以那个区间 (field) 来进行排序的意思

例子:

#去重反向

shell$ cat sort.sh | sort -r -u

VF

vdv

bcdbv vd

可参考:https://blog.csdn.net/xifeijian/article/details/9209623

二、文字去重

uniq 命令:uniq 命令删除文件中的重复行

语法

uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

参数:

-i :忽略大小写字符的不同;

-c :进行计数

-u :只显示唯一的行

-d :只显示重复的行

案例:

uniq sort.sh

bcdbv vd

vdv

VF

shell$ cat sort.sh

bcdbv vd

vdv

VF

VF

三、wc统计文件行数、单词数或字节数

格式:wc -l

打印指定文件的文本行数。(l=小写L)

下面參数可组合使用。

參数:-c, --bytes

打印字节数(print the byte counts)

參数:-m, --chars

打印字符数(print the character counts)

參数:-l, --lines

打印行数(print the newline counts)

參数:-L, --max-line-length

打印最长行的长度(print the length of the longest line)

參数:-w, --words

打印单词数(print the word counts)

案例:

# wc sort.sh

5 5 20 sort.sh

行数 单词数 字节数 文件名称

只打印行数

shell$ cat sort.sh | wc -l

4

四、打印格式化输出

pr [option]…[file]…

-column 指定输出的栏数,默认值为1

-h 指定页眉,如果没有指定,则默认使用文件名作为页眉

-l 指定每页行数,默认为66行

-o 指定每行的缩进字符数量

-w 指定页面宽度,默认为72个字符

-t 不想显示标题

案例:

#5列,不显示标题

shell$ pr -c5 -t sort.sh

bcdbvdvVFVF

注:文本处理函数还有很多,不一一列举了,遇到多查阅资料就可以了。

---------------------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181129G009SB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券