Linux上天之路(十四)之Linux数据处理
主要内容
数据检索
数据排序
数据去重
重定向
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数据处理的更多相关文章
- Linux上天之路(四)之Linux界面介绍
Linux界面 linux为使用者提供了图形界面和文本界面,但是很多操作依然需要文本界面的操作才能完成,很多人使用起来比较蹩脚,又因为linux平台的个人应用APP相对较少,使得大家的个人PC安装了l ...
- Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件
前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...
- Linux上天之路系列目录
Linux上天之路系列目录 Linux上天之路(一)之Linux前世今生 Linux上天之路(二)之Linux安装 Linux上天之路(三)之Linux系统目录 Linux上天之路(四)之Linux界 ...
- Linux学习总结(十四)—— 查看CPU信息
文章首发于[博客园-陈树义],点击跳转到原文Linux学习总结(十四)-- 查看CPU信息. Linux学习总结(十四)-- 查看CPU信息 商用服务器CPU最常用的是 Intel Xeon 系列,该 ...
- linux基础-第十四单元 Linux网络原理及基础设置
第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...
- Linux内核分析 - 网络[十四]:IP选项
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报 分类: 内核协议栈 ...
- Linux上天之路(一)之Linux前世今生
0. Linux的前世今生 linux是什么 linux是一个计算机的操作系统,与windows类似,是一款系统软件 操作系统 说到操作系统其实我们首先要思考三个问题: 1)操作系统是什么? 2)操作 ...
- 《Linux Device Drivers》第十四章 Linux 设备型号
基本介绍 2.6内核设备模型来提供的抽象叙述性描述的一般系统的结构,为了支持各种不同的任务 电源管理和系统关机 用户空间与通信 热插拔设备 设备类型 kobject.kset和子系统 kobject是 ...
- 运维是做什么的?史上最全互联网Linux工作规划!十分钟找到linux运维工程师职业方向!
首先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切. Linux因其高效率.易于裁剪.应用广等优势,成为了当今中高端服务器 ...
- JVM菜鸟进阶高手之路十四:分析篇
转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...
随机推荐
- [BUUCTF]REVERSE——新年快乐
新年快乐 附件 例行查壳儿,32位程序,upx加壳儿 利用网上找到的脱壳儿工具,拿到了去壳儿后的程序 32位ida打开,shift+f12查看程序里的字符串,得到了关于flag的提示 双击,ctrl+ ...
- LuoguP4420 [COCI2017-2018#1] Tetris 题解
Content 有一个 \(n\times m\) 的拼图,摆上了几块俄罗斯方块图形.已知这些图形可能包含以下这五种(可以旋转),求出下列类型的俄罗斯方块图形数量. 数据范围:\(1\leqslant ...
- ACwing1211. 蚂蚁感冒
题目: 长 100 厘米的细长直杆子上有 n 只蚂蚁. 它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁 ...
- LeetCode Top 100 Liked 点赞最高的 100 道算法题
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:刷题顺序,刷题路径,好题,top100,怎么刷题,Leet ...
- 【LeetCode】713. Subarray Product Less Than K 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/subarray ...
- 【LeetCode】894. All Possible Full Binary Trees 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】117. Populating Next Right Pointers in Each Node II 解题报告(Python)
[LeetCode]117. Populating Next Right Pointers in Each Node II 解题报告(Python) 标签: LeetCode 题目地址:https:/ ...
- 【LeetCode】423. Reconstruct Original Digits from English 解题报告(Python)
[LeetCode]423. Reconstruct Original Digits from English 解题报告(Python) 标签: LeetCode 题目地址:https://leetc ...
- 【剑指Offer】二叉树的下一个结点 解题报告(Python)
[剑指Offer]二叉树的下一个结点 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...
- 设计模式学习——JAVA动态代理原理分析
一.JDK动态代理执行过程 上一篇我们讲了JDK动态代理的简单使用,今天我们就来研究一下它的原理. 首先我们回忆下上一篇的代码: public class Main { public static v ...