主要内容

  • 数据检索

  • 数据排序

  • 数据去重

  • 重定向

1. 数据检索

常和管道协作的命令 – grep

grep:用于搜索模式参数指定的内容,并将匹配的行输出到屏幕或者重定向文件中,常和管道协作的命令 – grep。

还有egrep和fgrep两个命令。

egrep可以使用扩展的正则表达式

fgrep没有元字符与普通字符的区别

grep egrep用别名加了—color之后才好理解。

  • grep命令

grep, egrep, fgrep - print lines matching a pattern

命令语法
grep [OPTIONS] PATTERN [FILE...]
命令选项
-r 递归
-v 反取
-i 忽略大小写
-n 显示行号
-c 计数
-w 匹配一个词
-l 只给出匹配的文件名
-L 列出不匹配的文件名
-o 只列出匹配的内容
-E 支持扩展的正则表达式
-q 在标准输出中不输出任何内容,即静默模式
PATTERN
匹配字符串
example
对文件夹的操作
grep -r "root" /etc 递归检索/etc下所有文件中包含root的文件
grep -l -r "root" /etc 列出包含 root字符串的文件名
grep -L -r "root" /etc 列出不包含root字符串的文件名
对文件的操作
grep "root" /etc/passwd 找出文件中包含字符串root的行
grep -v "root" /etc/passwd 找出文件中不包含字符串root的行
grep -n "root" /etc/passwd 找出文件中包含字符串root的行,并显示行号
grep -c "root" /etc/passwd 统计文件中包含字符串root的行数
grep -w "root" /etc/passwd 匹配的字符串必须是一个完整单词 而不是包含
grep -o "root" /etc/passwd 只显示匹配的内容
grep -q "root" /etc/passwd 只匹配不输出
可以使用$?来监测结果,一般脚本中使用较多
[root@www ~]# grep -q "root" /etc/passwd
[root@www ~]# echo $?
0
[root@www ~]# grep -q "root1" /etc/passwd
[root@www ~]# echo $?
  • 管道: |

上一个命令的输出作为下一个命令的输入

cat /etc/passwd | head -2

2. 数据排序

  • 常和管道协作的命令 - sort

sort - sort lines of text files

-n  按数字排序
-r 反序排序
-o 结果输出到文件
-t 分隔符 sort -n -t: -k3 /etc/passwd
-k 关键字 (按照指定列来排序)
example:
ps -a -o comm,vsz,rss,pmem |sort -nr -k 3

3. 数据去重

常和管道协作的命令 - uniq

uniq - report or omit repeated lines

-c  每行出现的次数
-d 仅显示重复行
-u 仅显示不重复行
-i 忽略大小写
-f N 跳过前面N个部分 (空格分开)
-s N 跳过前面N个字符 (一般字符)

4. 重定向

> 重定向输入

>> 重定向追加

< 重定向输出

<< 重定向追加输出

linux中使用
0 代表标准输入 stdin
1 代表标准输出 stdout
2 代表标准错误输出 stderr
把输入输出和重定向混合使用。
2>把标准错误流重定向到文件中。
2>&1或>&把标准错误流与标准输出流结合在一起。
2>>是什么情况?
2>&1的意思是,“把标准错误传送到标准输出要去的任何位置”。

Linux上天之路(十四)之Linux数据处理的更多相关文章

  1. Linux上天之路(四)之Linux界面介绍

    Linux界面 linux为使用者提供了图形界面和文本界面,但是很多操作依然需要文本界面的操作才能完成,很多人使用起来比较蹩脚,又因为linux平台的个人应用APP相对较少,使得大家的个人PC安装了l ...

  2. Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件

    前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...

  3. Linux上天之路系列目录

    Linux上天之路系列目录 Linux上天之路(一)之Linux前世今生 Linux上天之路(二)之Linux安装 Linux上天之路(三)之Linux系统目录 Linux上天之路(四)之Linux界 ...

  4. Linux学习总结(十四)—— 查看CPU信息

    文章首发于[博客园-陈树义],点击跳转到原文Linux学习总结(十四)-- 查看CPU信息. Linux学习总结(十四)-- 查看CPU信息 商用服务器CPU最常用的是 Intel Xeon 系列,该 ...

  5. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  6. Linux内核分析 - 网络[十四]:IP选项

    Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报  分类: 内核协议栈 ...

  7. Linux上天之路(一)之Linux前世今生

    0. Linux的前世今生 linux是什么 linux是一个计算机的操作系统,与windows类似,是一款系统软件 操作系统 说到操作系统其实我们首先要思考三个问题: 1)操作系统是什么? 2)操作 ...

  8. 《Linux Device Drivers》第十四章 Linux 设备型号

    基本介绍 2.6内核设备模型来提供的抽象叙述性描述的一般系统的结构,为了支持各种不同的任务 电源管理和系统关机 用户空间与通信 热插拔设备 设备类型 kobject.kset和子系统 kobject是 ...

  9. 运维是做什么的?史上最全互联网Linux工作规划!十分钟找到linux运维工程师职业方向!

    首先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切. Linux因其高效率.易于裁剪.应用广等优势,成为了当今中高端服务器 ...

  10. JVM菜鸟进阶高手之路十四:分析篇

    转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...

随机推荐

  1. 【笔记】草履虫也能看懂的ELK搭建流程

    环境需要 Elasticsearch需要JAVA环境,至少是JDK1.8 elasticsearch 不允许root用户使用,需要新增个elk用户 如果觉得官网下载太慢,可以使用这个 https:// ...

  2. 分布式全局ID生成器原理剖析及非常齐全开源方案应用示例

    为何需要分布式ID生成器 **本人博客网站 **IT小神 www.itxiaoshen.com **拿我们系统常用Mysql数据库来说,在之前的单体架构基本是单库结构,每个业务表的ID一般从1增,通过 ...

  3. tableau添加参考线

    一.将数据窗口切换至分析窗口-点击自定义-参考线 二.出现编辑参考线和参考区间的界面(整个表指的是整个视图,每区指的是如下2018就是一个区,每单元格指的是横轴的最小值) 三.我们分别为每区添加最大值 ...

  4. 分布式调用链跟踪工具Jaeger?两分钟极速体验

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 字符串函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

  6. CF918B Radio Station 题解

    Content 有 \(n\) 个形如 \(a_i.b_i.c_i.d_i\) 的 IP 地址.有 \(m\) 条命令,每条命令由一条字符串 \(s\) 和一个形如 \(p.q.r.s\) 的 IP ...

  7. CF263B Squares 题解

    Content 有 \(n\) 个边长为 \(a_i\) 的正方形,第 \(i\) 个正方形的四个顶点分别是 \((0,0),(0,a_i),(a_i,0),(a_i,a_i)\),我们定义一个点属于 ...

  8. django - Templates模板嵌套语法

    模板继承 1.继承母板:{% extends '母板html文件名称' %} 2.包含子模板:{% include  '子母板html 文件名' %} 模板内容分块 {% block <分块名& ...

  9. let, const用法以及与var的区别

    let 定义变量; 作用域:全局作用域,块级作用域(简单说,是指一对大括号{}): 无预解析机制(简单说,变量需要在声明的位置后面使用): 不可以重复定义. const 定义常量: 作用域: 块级作用 ...

  10. 【九度OJ】题目1202:排序 解题报告

    [九度OJ]题目1202:排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1202 题目描述: 对输入的n个 ...