Linux中针对字符串操作的工具
发布时间:2016-12-30 17:16:14 来源:51推一把
【摘要】Linux中针对字符串操作的经常用到的工具
1)grep :过滤一个或多个字符,将会在后续内容中详细介绍其用法。
![](http://www.51tuiyiba.com/upload/uimg/60/d1/60d182327b3ad36348c5ec24c3248309.png)
2) cut :截取某一个字段
语法:cut -d “分隔字符” [-cf] n 这里的n是数字
-d :后面跟分隔字符,分隔字符要用双引号括起来
-c :后面接的是第几个字符
-f :后面接的是第几个区块
![](http://www.51tuiyiba.com/upload/uimg/46/fd/46fd39f408a3e9ada793b157c5aa2351.png)
-d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无。
![](http://www.51tuiyiba.com/upload/uimg/de/d7/ded7a6292c6a39c98ab7e00f77ba6f78.png)
-c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3
![](http://www.51tuiyiba.com/upload/uimg/96/a5/96a5a520007e206f765c955f6dd06a51.png)
3) sort :用做排序
语法:sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2
-t 分隔符 :作用跟cut的-d一个意思
-n :使用纯数字排序
-r :反向排序
-u :去重复
-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
![](http://www.51tuiyiba.com/upload/uimg/20/38/203896ae706c461c0a19b3f9198b05c3.png)
![](http://www.51tuiyiba.com/upload/uimg/d5/54/d5540b9f8e87989fd5f59988afe2f97e.png)
![](http://www.51tuiyiba.com/upload/uimg/11/1c/111ca6724ce93c488b2c331165c92257.png)
4) wc :统计文档的行数、字符数、词数,常用的选项为:
-l :统计行数
-m :统计字符数
-w :统计词数
![](http://www.51tuiyiba.com/upload/uimg/cc/28/cc28b4b6ee94c773f50b0e1f7a1d5241.png)
5) uniq :去重复的行,常用的选项只有一个:
-c :统计重复的行数,并把行数写在前面
![](http://www.51tuiyiba.com/upload/uimg/d5/77/d577d6ea03bfb507ab4e81dc7012ef4a.png)
有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq,否则你将得不到你想要的,上面的试验当中已经是排序过所以省略掉那步了。
6)tee :后跟文件名,类似与重定向”>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
![](http://www.51tuiyiba.com/upload/uimg/cf/4d/cf4da3383c8763a0b620103e6ad57f28.png)
7)tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:
-d :删除某个字符,-d 后面跟要删除的字符
-s :把重复的字符去掉
最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’
![](http://www.51tuiyiba.com/upload/uimg/0c/bf/0cbf101b397de0954468900398f33eb9.png)
当然替换一个字符也是完全可以的。
![](http://www.51tuiyiba.com/upload/uimg/c7/39/c739634ad6f037d7bfe2ab076e42502d.png)
不过替换、删除以及去重复都是针对一个字符来讲的,有一定局限性。如果是针对一个字符串就不再管用了,所以建议只是简单了解这个tr即可,以后你还会学到更多可以实现针对字符串操作的工具。
![](http://www.51tuiyiba.com/upload/uimg/44/73/4473aa959baff457bafb5f4318728701.png)
8)split :切割文档,常用选项:
-b :依据大小来分割文档,单位为byte
![](http://www.51tuiyiba.com/upload/uimg/8e/79/8e79a88375f0b05bcdbb167f4e745d9a.png)
格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …
-l :依据行数来分割文档
![](http://www.51tuiyiba.com/upload/uimg/90/09/90098cd2869ef35930ec455f03054aa5.png)
![](http://www.51tuiyiba.com/upload/uimg/60/d1/60d182327b3ad36348c5ec24c3248309.png)
2) cut :截取某一个字段
语法:cut -d “分隔字符” [-cf] n 这里的n是数字
-d :后面跟分隔字符,分隔字符要用双引号括起来
-c :后面接的是第几个字符
-f :后面接的是第几个区块
![](http://www.51tuiyiba.com/upload/uimg/46/fd/46fd39f408a3e9ada793b157c5aa2351.png)
-d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无。
![](http://www.51tuiyiba.com/upload/uimg/de/d7/ded7a6292c6a39c98ab7e00f77ba6f78.png)
-c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3
![](http://www.51tuiyiba.com/upload/uimg/96/a5/96a5a520007e206f765c955f6dd06a51.png)
3) sort :用做排序
语法:sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2
-t 分隔符 :作用跟cut的-d一个意思
-n :使用纯数字排序
-r :反向排序
-u :去重复
-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
![](http://www.51tuiyiba.com/upload/uimg/20/38/203896ae706c461c0a19b3f9198b05c3.png)
![](http://www.51tuiyiba.com/upload/uimg/d5/54/d5540b9f8e87989fd5f59988afe2f97e.png)
![](http://www.51tuiyiba.com/upload/uimg/11/1c/111ca6724ce93c488b2c331165c92257.png)
4) wc :统计文档的行数、字符数、词数,常用的选项为:
-l :统计行数
-m :统计字符数
-w :统计词数
![](http://www.51tuiyiba.com/upload/uimg/cc/28/cc28b4b6ee94c773f50b0e1f7a1d5241.png)
5) uniq :去重复的行,常用的选项只有一个:
-c :统计重复的行数,并把行数写在前面
![](http://www.51tuiyiba.com/upload/uimg/d5/77/d577d6ea03bfb507ab4e81dc7012ef4a.png)
有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq,否则你将得不到你想要的,上面的试验当中已经是排序过所以省略掉那步了。
6)tee :后跟文件名,类似与重定向”>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
![](http://www.51tuiyiba.com/upload/uimg/cf/4d/cf4da3383c8763a0b620103e6ad57f28.png)
7)tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:
-d :删除某个字符,-d 后面跟要删除的字符
-s :把重复的字符去掉
最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’
![](http://www.51tuiyiba.com/upload/uimg/0c/bf/0cbf101b397de0954468900398f33eb9.png)
当然替换一个字符也是完全可以的。
![](http://www.51tuiyiba.com/upload/uimg/c7/39/c739634ad6f037d7bfe2ab076e42502d.png)
不过替换、删除以及去重复都是针对一个字符来讲的,有一定局限性。如果是针对一个字符串就不再管用了,所以建议只是简单了解这个tr即可,以后你还会学到更多可以实现针对字符串操作的工具。
![](http://www.51tuiyiba.com/upload/uimg/44/73/4473aa959baff457bafb5f4318728701.png)
8)split :切割文档,常用选项:
-b :依据大小来分割文档,单位为byte
![](http://www.51tuiyiba.com/upload/uimg/8e/79/8e79a88375f0b05bcdbb167f4e745d9a.png)
格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …
-l :依据行数来分割文档
![](http://www.51tuiyiba.com/upload/uimg/90/09/90098cd2869ef35930ec455f03054aa5.png)