《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 ...
随机推荐
- Java数据类型转换规则
- ODbgScript 2.01帮助文档
-------------------------------ODbgScript original pluginhttp://github.com/odbgscript--------------- ...
- [转]iOS 中几种定时器 - 控制了时间,就控制了一切
这篇文章是转载内容,原文地址:http://www.cocoachina.com/ios/20150519/11857.html?utm_source=tuicool 这里的知识点,其实在我们日常开发 ...
- [DL] *Deep Learning for Industry - Wang Yi
Link: 分布式机器学习系列讲座 - 04 Deep Learning WANG Yi. https://cxwangyi.wordpress.com/ https://www.zhihu.com/ ...
- [Laravel] 04 - Blade templates
前言 一.大纲 From: https://www.imooc.com/video/12509 Blade视图页面 --> 编译 --> 原生PHP --> 并缓存起来. 既然是个模 ...
- trace-cmd使用方法
使用trace-cmd有的时候没有来得及使用ctrl+c, 导致出现多个trace.dat.cpu*, 可以使用下面的办法来手动合并trace.dat If a crash happened on a ...
- vue封装第三方插件并发布到npm
前言 写此文前特意google了一下,因为有较详细的开发教程我再写意义不大,有把插件封装成组件的教程,有把自己的组件封住成插件的教程,本文主要说明如何把第三方的插件封装成vue插件,简化配置,一键安装 ...
- iOS(UIWebView 和WKWebView)OC与JS交互 之二
在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...
- MapReduce处理HBase出错:XXX.jar is not a valid DFS filename
原因:Hadoop文件系统没有检查路径时没有区分是本地windows系统还是Hadoop集群文件系统 解决: 只需将Map和Reduce的init方法最后一个参数(boolean addDepend ...
- django通用视图(类方法)
这周是我入职的第一周,入职第一天看到嘉兴大佬的项目代码.视图中有类方法,我感到很困惑. 联想到之前北京融360的电话面试,问我有无写过类方法……看来有必要了解下视图的类方法,上网搜了很多,原来这就是所 ...