主要内容

  • 数据检索

  • 数据排序

  • 数据去重

  • 重定向

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. 机器学习——可视化绘图matplotlib和seaborn

    安装matplotlib和seaborn https://blog.csdn.net/Jia_jinjin/article/details/80428598 seaborn pairplot:特征两两 ...

  2. Mybatis-plus报Invalid bound statement (not found)错误

    错误信息 org.springframework.security.authentication.InternalAuthenticationServiceException: Invalid bou ...

  3. MySQL数据库如何实现增量备份

    1 .通过SHOW VARIABLES LIKE '%log_bin%';查看数据库是否开启增量备份log_bin=ON则为开启log_bin=OFF则为关闭 2 .修改mysql配置文件mysql. ...

  4. 02-多任务-thread

    多任务-Thread 一.理解并行与并发 并行:cpu数多于任务数 例如: 一共有三个任务,分别是:QQ.微信.陌陌:一共有四个CPU,每个任务占据一个CPU. 并发:CPU数少于任务数 例如: 一共 ...

  5. MISC常见题型整理

    题目打包在这里 提取码:fhkb MISC 流量包分析 流量包_1 流量包_2 流量包_3 图片隐写 图片隐写_1 图片隐写_2 图片隐写_3 图片隐写_4 图片隐写_5 图片隐写_6 音频隐写 音频 ...

  6. 为什么众多软件厂商无法提供APS高级计划排程系统?工厂目前生产计划是怎么排产的?

    一.行业现状如想了解一下目前现状,去考察一下上了ERP的企业,会发现一个有趣的现象该企业无论ERP软件搞得如何如火如荼,似乎都与生产调度人员无关. 车间里或者生产线上的生产作业计划.生产过程的调度和管 ...

  7. CF1547A Shortest Path with Obstacle 题解

    Content 给定两个在二维平面上的网格 \(A(x_A,y_A)\) 和 \(B(x_B,y_B)\),另外,还有一个不可通过的网格 \(F(x_F,y_F)\).你需要求出在不经过 \(F\) ...

  8. Joseph(hdu1443)

    Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. 分割字符串StringTokenizer

    StringTokenizer 原来是一个遗留类,并未被废弃,只是出于兼容性原因而被保留,在新代码中已经不鼓励使用它了,建议使用 String 的 split 方法或 java.util.regex ...

  10. The Many Faces of Robustness: A Critical Analysis of Out-of-Distribution Generalization (DeepAugment)

    目录 概 主要内容 ImageNet-R StreetView StoreFronts (SVSF) DeepFashion Remixed DeepAugment 实验结论 代码 Hendrycks ...