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

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 <file>

打印指定文件的文本行数。(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 
bcdb	      vdv	    VF		  VF

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


欢迎关注微信公众号技术修炼之路,我们一起成长,一起进步
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值