管道

管道是一种使用非常频繁的通信机制,我们可以使用管道符"|"来连接进程,
由管道连接起来订单进程可以自动运行,如同有一个数据流一样,所以管道表现为输入输出重定向的一种方法,
它可以把一个命令的输出内容当作下一个命令的输入内容,两个命令之间只需要管道符连接即可

使用grep搜索文本

grep [-ivnc] '需要匹配的字符' 文件名
#-i 不区分大小写
#-c 统计包含匹配的行数
#-n 输出行号
#-v 反向匹配
例子:
[root@Cfhost-170820-UCNK ~]# cat test.txt
The cat's name is Tom,What's the mouse's name?
The mouse's NAME is Jerry
They are good friends
[root@Cfhost-170820-UCNK ~]# grep 'name' test.txt //搜索含有'name'的句子
The cat's name is Tom,What's the mouse's name?
[root@Cfhost-170820-UCNK ~]# grep -i 'name' test.txt //搜索含有'name'的句子,忽略大小写
The cat's name is Tom,What's the mouse's name?
The mouse's NAME is Jerry
[root@Cfhost-170820-UCNK ~]# grep -c 'name' test.txt//含'name'的句子有多少条
1
[root@Cfhost-170820-UCNK ~]# grep -ci 'name' test.txt//含'name‘的句子有多少条,大小写可忽略
2
[root@Cfhost-170820-UCNK ~]# grep -v 'name' test.txt //搜索不含'name'的句子
The mouse's NAME is Jerry
They are good friends
[root@Cfhost-170820-UCNK ~]# grep -vi 'name' test.txt//搜索不含'name'的句子,大写的NAME也过滤掉
They are good friends
[root@Cfhost-170820-UCNK ~]# cat test.txt
The cat's name is Tom,What's the mouse's name?
The mouse's NAME is Jerry
They are good friends
[root@Cfhost-170820-UCNK ~]# cat test.txt | grep -vi 'name' ? //以上命令都可以使用管道符改写,比如上一个命令可以这样写,意思都是一样的
They are good friends

使用sort排序

sort [-ntkr] 文件名

#-n 采取数字排序
#-t 指定分隔符
#-k 指定第几列
#-r 反向排序
[root@Cfhost-170820-UCNK ~]# cat sort.txt
b:3
c:2
a:4
e:5
d:1
f:11
[root@Cfhost-170820-UCNK ~]# cat sort.txt | sort //按字母正向排序
a:4
b:3
c:2
d:1
e:5
f:11
[root@Cfhost-170820-UCNK ~]# cat sort.txt | sort -r //按字母反向排序
f:11
e:5
d:1
c:2
b:3
a:4
[root@Cfhost-170820-UCNK ~]# cat sort.txt | sort -t ":" -k 2 -n
d:1
c:2
b:3
a:4
e:5
f:11

使用uniq删除重复内容

uniq [-ic]
#-i 忽略大小写
#-c 计算重复内容 [root@Cfhost-170820-UCNK ~]# cat uniq.txt | sort | uniq
//需要说明的是uniq命令一般需要和sort一起使用,也就是先将文件使用进行sort排序,然后再使用uniq删除重复的内容。单独加上uniq不加sort是没有效果的。
123
abc 补充说明:
[root@Cfhost-170820-UCNK ~]# cat uniq.txt | uniq
abc
123
abc
123 [root@Cfhost-170820-UCNK ~]# cat uniq.txt | sort | uniq -c
//使用-c参数就会在每行前面打印出改行重复的次数
2 123

使用cutt截取文本、使用tr做文本转换、使用paste做文本合并(还有一个文件分割用split做,这里不再说了,我目前想不到它到底有什么用)

cut -f 指定列 -d '分隔符'

[root@Cfhost-170820-UCNK ~]# cat /etc/passwd | cut -f1 -d ':'
root
bin
daemon
admin tr命令比较简单,其主要作用在于文本转换或删除
[root@Cfhost-170820-UCNK ~]# cat /etc/passwd | tr '[a-z]' '[A-Z]'
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN paste的作用在于将文件按照行进行合并,中间使用tab隔开
[root@Cfhost-170820-UCNK ~]# cat a.txt
a b c
[root@Cfhost-170820-UCNK ~]# cat b.txt
a b c
[root@Cfhost-170820-UCNK ~]# paste a.txt b.txt
a b c    a b c

Linux系统学习之字符处理的更多相关文章

  1. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  2. Linux系统学习之 一:新手必须掌握的Linux命令1

    2018-10-03 16:04:12 一.常用系统工作命令 1.wget 命令 作用:用于在终端中下载网络文件. 格式:wget [参数] 下载地址 参数及作用: -b : 后台下载模式 -d:显示 ...

  3. LINUX系统学习以及初学者系统下载

    Linux系统常用命令大全 来源:服务器之家 [博客中所有文章如有不对的地方希望看官们指出,有问题也可以提出来相互交流,相互学习,感谢大家!] 初学者建议安装:sentOS Ubuntu系统下载连接h ...

  4. Linux系统学习 九、日志、命令、身份鉴别、目录、文件查看、控制台终端、文件属性

    一.配置静态IP地址 输入ifconfig后没有配置IP地址,接下来进行手动配置. 输入以下命令进入IP配置文件进行配置   原始内容 进入vi后,输入i进入编辑状态,编辑完成后,按esc键退出编辑状 ...

  5. Linux系统学习优缺点

    Linux是一套操作系统,按照鸟哥的说法Linux提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统而来的,功能强大而且稳定性卓越.其实Torvalds ...

  6. 网工的Linux系统学习历程

    偶遇篇作为一名通过思科CCNP认证的网络工程师,专注于网络技术.但在日常的工作中,难免不接触到服务器,对于大多数服务器来说,鉴于稳定性等因素的考虑,基本使用的都是Linux系统,包括RHEL.Cent ...

  7. 谈谈我对Linux系统学习的历程回顾

    ​​众所周知,Windows 和Linux 是目前最流行的2个操作系统.Windows系统适合普通用户,它的优势是图形化界面,简单易用,使用起来门槛很低,很容易上手,所以,windows占有了大多数普 ...

  8. 老司机浅谈linux系统学习技巧

    Linux起源于20世纪70年代,是一种优秀的操作系统系统.初次接触到linux这个系统是在大学期间,这样才发现除了windows外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它 ...

  9. 说一说本人对linux系统学习的方法和经验

    摘要: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下面是一段百度中的介绍: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下 ...

随机推荐

  1. MVC中返回json数据的两种方式

    MVC里面如果直接将数据返回到前端页面,我们常用的方式就是用return view(): 那么我不想直接用razor语法,毕竟razor这玩意儿实在是太难记了,还不如写ajax对接来得舒服不是 那么我 ...

  2. Oracle总结二

    1 where子句 Where子句的作用:用where子句来指定查询条件 1.1 用法示例 select * from emp where deptno=10; select * from emp w ...

  3. Mysql数据库单表查询

    1.单表查询语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法 select * from,这个sel ...

  4. SD从零开始67-70 后勤信息系统中的标准分析, 信息结构, 信息的更新规则, 建立统计数据

    SD从零开始67 后勤信息系统中的标准分析 标准分析中的报表Reporting in Standard Analyses 标准分析为高质量的表达和分析LIS中的数据基础提供了大量的功能: 当你决定了一 ...

  5. 【转】pam_mysql - MySQL error (Can't connect to local MySQL server through socket

    转自:http://350201.blog.51cto.com/340201/1034672 参照 http://wjw7702.blog.51cto.com/5210820/936244博 主做的p ...

  6. Oracle 使用SQL*Plus连接数据库

    Oracle使用SQL*Plus连接数据库 by:授客 QQ:1033553122   使用sqlplus连接数据库 A 方式1 1.开启SQL*Plus,但不连接到数据库 $ sqlplus /NO ...

  7. 2018最新大厂Android面试真题

    前言 又到了金三银四的面试季,自己也不得不参与到这场战役中来,其实是从去年底就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历还是有一些面试机会的,不过确实不像几年前 ...

  8. Python:随机生成测试数据的模块--faker的基本使用

    本文内容: faker的介绍 faker的使用 小例子:生成随机的数据表信息 首发日期:2018-06-15 faker介绍: faker是python的一个第三方模块,是一个github上的开源项目 ...

  9. Python-初识模块

    #系统自带的模块 import sys print(sys.path)#打印环境变量 print(sys.argv)#打印绝对路径 import os #cmd_res = os.system(&qu ...

  10. [20171107]dbms_shared_pool.pin.txt

    [20171107]dbms_shared_pool.pin.txt --//昨天与别人聊天提到,如果dbms_shared_pool.pin对象,可以改变对应的chunk的类型.我自己也不确定,做一 ...