《linux 字符处理》- grep/sort/uniq/tr/paste
一:基本
- 字符处理主要是文本的搜索和处理。
- 搜索也主要使用到了 管道 作为媒介。
二: grep 搜索文本
- 基本语法 (可以在文本中使用正则进行搜索)
- grep [-incv] '文本' 文件
- i 不区分大小写
- c 匹配行数
- n 输出匹配行数
- v 反向匹配
- 正则使用
- grep '^[123]' index.txt (搜索在开头为123的行)
三: sort 排序
- 基本语法
- sort [-ntkr] 文件名
- n 数字排序
- t 指定分隔符
- k 指定第几列
- r 反向排序
- 指定排序
- -t -k 可以指定排序方式
- 比如这里,我新建了一个 sort.txt
[mttyk]$ cat sort.txt
b:-
a:-
f:-
h:-
d:-
h:-
g:-
- 在没有指定条件时候,sort 默认第一个字符正序
[mttyk]$ sort sort.txt
a:2-2
b:1-3
d:3-6
f:4-1
g:6-7
h:8-9
h:8-9
- 如果想使用第二例的数字来进行排序的话
[mttyk]$ sort -t ":" -k 2 sort.txt
b:1-3
a:2-2
d:3-6
f:4-1
g:6-7
h:8-9
h:8-9-t 等于切割了两组
1组 切割符 第二组
b : 1-3
a : 2-2
......
四: uniq 删除重复内容
- 基本语法
- uniq [-ic] 文件
- i 忽略大小写
-c 显示重复行数
- 注意
- uniq 语法应该是和 sort 一起使用的,因为不连续的重复数据,uniq 是无法删除的
- 所以需要 sort 排序后删除/统计
文件
h:8-9
d:3-6
h:8-9 直接 uniq 删除重复
[mttyk]$ uniq sort.txt
h:8-9
d:3-6
h:8-9
无法删除 排序后 uniq 删除重复
[mttyk]$ sort sort.txt | uniq
d:3-6
h:8-9
五: tr (文本转换/删除)
- tr 只能在管道中处理字符,源文件并不能修改
- 基本语法 (支持正则)
- 删除指定字符 tr -d "[1-9]"
- 转换指定字符 tr "[a-z]" "[A-Z]"
- 替换字符时,文本中有多少个字符,就只能替换多少个字符
六:sed (文本处理) ( -i 可改变源文件)
- 基于 行 的 文本处理工具
- 基本语法
- sed [options] 'commend' file
- 删除操作 (/d)
- 删除指定行 sed '1d' index.txt (删除 index.txt 文件下的第1行)
- 删除指定区间 sed '1,2d' index.txt (删除 index.txt 文件下的第1-2行)
- 删除最后一行 sed '$d' index.txt (删除 index.txt 文件下的最后一行)
- 删除空行 sed '/^$/d' index.txt (删除 index.txt 文件下的空行)
- 查找替换 (s/)
- 部分替换 sed 's/L/l/1' index.txt (替换 index.txt 文件下的L为l) (只替换一行中的第一个)
- 全部替换 sed 's/L/l/g' index.txt (替换 index.txt 文件下的L为l) (一行不管有多少个,全部替换)
- 字符替换 (y/)
- 批量替换 sed 'y/abcd/ABCD/' index.txt (替换 index.txt 文件下的a为A, b为B, c为C,d为D)
- 文本插入 (i 匹配行后插入) (a 匹配行前插入)
- 指定行插入 sed '2 i insert' index.txt (在 index.txt 文件 第2行 插入文本)
七:awk (文本处理)
- 基于 列 的文本处理工具
- 基本语法
- -F 指定分隔符
- 基本操作
- 查看文本域数量
- awk '{print NF}' index.txt (查看 index.txt 文件的切割域) (内部变量 NF 实现)
- 求和
- awk 'BEGIN{total=0}{total+=$1}END{print total}' index.txt
- awk 'BEGIN{total=0;num=0}{num+=$1;total+=1}END{print total/num}' index.txt
《linux 字符处理》- grep/sort/uniq/tr/paste的更多相关文章
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
- linux命令-awk,sort,uniq
学习地址:http://man.linuxde.net/awk#awk的工作原理 awk 选项参数说明: -F fs or --field-separator fs 指定输入文件折分隔符,fs是一个字 ...
- linux shell——md5sum,sha1sum,sort,uniq (转)
1.文件校验 1. md5sum eg: md5sum filename 注:生成一个128位的二进制位,即32位的十六进制字符串 1.验证文件的正确性: md5sum file1 file2 &g ...
- linux命令使用 cut/sort/uniq
我记得之前去XX网面试的那个面试题是这样的:有个apache.log 文件文本内容如下:======================[niewj@centSvr ~]$ cat apache.log ...
- linux字符处理命令 sort(部分转载)
[root@LocalWeb01 ~]# sort /etc/passwd |less (升序 ) [root@LocalWeb01 ~]# sort -r /etc/passwd |less ( ...
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
- 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解
linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...
- [linux] grep awk sort uniq学习
grep的-A-B-选项详解grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释1. grep -A1 keyword filename找出filename中带有keyword ...
- 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)
问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ...
随机推荐
- js的new Date()日期的使用
<script type="text/javascript"> //js获取某个月的天数 function days(year,month){ var dayCount ...
- ubuntu12.04安装Docker
由于公司的虚拟机上的ubuntu都是12.04的,所以要在ubuntu12.04上安装Docker.Docker目前只能运行在64位的机器上面. 先要升级内核 sudo apt-get update ...
- Loadrunner C/S关联函数(LSP)AND(LSSS)使用-案例
LSP就是lrs_save_param()函数 LSSS就是lrs_save_searched_string()函数 一下我们用一个例子去说明他们的使用. C/S机制和B/S不一样,特别是有一个dat ...
- CSS实现响应式全屏背景图
body { /* 加载背景图 */ background-image: url(images/background-photo.jpg); /* 背景图垂直.水平均居中 */ background- ...
- 【转载】VC维,结构风险最小化
以下文章转载自http://blog.sina.com.cn/s/blog_7103b28a0102w9tr.html 如有侵权,请留言,立即删除. 1 VC维的描述和理解 给定一个集合S={x1,x ...
- Java面试题考点全面总结
我通过两个月的复习拿到了阿里巴巴的 offer,有一些运气,也有一些心得,借着跳槽季来临特此分享出来. 简单梳理一下我的复习思路,同时也希望和大家一起交流讨论,一起学习,如果不对之处欢迎指正一起学习. ...
- duilib进阶教程 -- Container控件 (3)
前面两个教程的目的是教大家与MFC结合,那么从这篇起,将不再使用MFC,而使用纯win32项目,本文的所有知识已经在<duilib入门教程>里面讲过了,因此基础知识不再赘述. 代码下载:h ...
- golang IO 流抽象与应用
https://blog.csdn.net/pmlpml/article/details/82930191
- asp.net mvc 3.0 知识点整理 ----- (4).asp.net mvc 3 和asp.net mvc 4 对比
asp.net mvc的版本更新很快,每个版本都在前一个版本的基础上,进行性能的优化和功能的完善和提升. 以下,便是我对比了下两个版本,发现最基本的差异.(更新补充中..) 一.关于配置类Global ...
- 写在开始前---web前后端对接
现阶段接口对接问题: 1.接口乱,不清晰明了,无文档或文档过期 2.接口和业务不匹配.不可用 3.前后端沟通,工程复杂化 4.不能深入了解业务 5.任务延期 注:前后端对业务深入了解,接口之间都是有联 ...