《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 ...
随机推荐
- How do I convert an enum to a list in C#?
How do I convert an enum to a list in C#? This will return an IEnumerable<SomeEnum> of all the ...
- 1. ansible-playbook 变量定义与引用
简单的playbook playbook 是ansible的核心组件,使用的是YAML语法. 下面请看简单的playbook代码 [root@LeoDevops playb]# cat nginx.y ...
- [Tensorflow] Cookbook - Retraining Existing CNNs models - Inception Model
From: https://github.com/jcjohnson/cnn-benchmarks#alexnet 先大概了解模型,再看如果加载pre-training weight. 关于retai ...
- ScrollView fillViewport
话不多说直接上图
- Linux->Windows主机目录和文件名中文乱码恢复
目录 Linux->Windows主机目录和文件名中文乱码恢复 声明 一. 乱码问题 二. 调试环境 三. 目录和文件名乱码恢复 3.1 可选方案 3.1.1 通过合适的编解码转换 3.1.2 ...
- [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...
- linux下git怎么保存账号密码
我是用 shell 命令来执行 git 操作的,所以就决定在 --global 配置一下用户名和密码,不用每次手动输入了. 设置步骤 1. 首先需要 ftp 连接到你的 Linux 服务器,在根目录( ...
- Spark Multilayer perceptron classifier (MLPC)多层感知器分类器
多层感知器分类器(MLPC)是基于前馈人工神经网络(ANN)的分类器. MLPC由多个节点层组成. 每个层完全连接到网络中的下一层. 输入层中的节点表示输入数据. 所有其他节点,通过输入与节点的权重w ...
- 10.17正式开发stark项目(二)
2018-10-17 11:09:48 orm补充参考连接: https://www.cnblogs.com/yuanchenqi/articles/8963244.html model 进阶 参考连 ...
- js的server worker创建子进程
类似nodejs的 child_process.fork() // index.html 主线程 function isClose(data){ if(data === 0) return true; ...