《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 ...
随机推荐
- tail -f 实时查看日志文件 linux查看日志后100行
tail -f 实时查看日志文件 tail -f 日志文件logtail - 100f 实时查看日志文件 后一百行tail -f -n 100 catalina.out linux查看日志后100行搜 ...
- Node入门教程(8)第六章:path 模块详解
path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径.由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异. 可移植操作系统接口( ...
- JVM——Java HotSpot VM Options
JVM常用参数 参数名称 含义 默认值 描述 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆 ...
- Android应用图标微技巧,8.0系统中应用图标的适配
现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的 ...
- ajax实战用法详解
谦虚使人进步,总结使人提高! 以下5个方法执行一般Ajax请求的简短形式,在处理复杂的Ajax请求时应该使用jQuery.ajax() 1.load(url,[data],[callback])载入远 ...
- Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体
http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...
- java对象与map对象相互转换
/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map<String ...
- mybatis xml 文件中like模糊查询
1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. 2.CONCAT()函数 My ...
- TP5分页类
<?php class Page { public $page; //当前页 public $total; //总记录数 public $listRows; //每页显示记录数 private ...
- 大杂烩 -- equals、hashCode联系与区别
基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Equals 1.默认情况(没有覆盖equals方 ...