《Unix&Linux大学教程》学习笔记四:标准I/O 与 过滤器
1:标准IO
Unix中的标准IO主要包括:标准输入、标准输出(正常输出)、标准错误(异常信息)
2:重定向输出
内容 > 文件名 :将内容输出到文件,并且覆盖文件原来内容;文件不存在则新建
内容 >> 文件名:将内容追加到文件末尾
3:重定向输入
指令 < 文件名 :从文件中读取数据给指令处理
4:管道线
一个程序的标准输出能自动作为下一个程序的标准输入。
指令1 | 指令2 :指令1的输出作为指令2的输入
5:组合输出
tee 文件名:从标准输入读取数据,并向标准输出和文件发送数据
6:长选项与短选项
短选项: -字符
长选项:--单词
7:过滤器——任何能从标准输入读取文本数据,经过处理后往标准输出写入文本的程序
例如:sort程序
8:如何组合使用过滤器
熟练使用Unix是指:能够熟练运用Unix程序员们已经写好的众多程序来解决自己的问题。
分解问题:针对自己遇到的问题,进行分解。
选择程序:对每个小问题,使用适合的程序(过滤器)来处理。
组合:然后使用 管道线 连接起来。
9:最简单的过滤器——cat
cat :接收标准输入,并将内容发送到标准输出
cat > 文件:重定向输出到文件
cat >> 文件:重定向追加输出到文件中
cat 文件:从文件中读取数据
cat file... :按顺序读取多个文件,并且将读取内容显示在屏幕上
cat file... > 组合文件:按顺序读取多个文件,并且将读取内容写入到标准输出【可用于组合多个文件】
cat file... | 指令:按顺序读取多个文件,并且将读取内容通过管道输送给指令程序
10:常用过滤器


11:分拆文件——split
split -l lines file:将file文件分拆成每个文件最大行数为lines行的小文件
12:文本反转——tac
tac files... > 文件:从files文件们读取数据,将文本行顺序反转后写入到标准输出
13:各行字符反转——rev
rev 文件 :将文件中每行字符反转
14:从文件头尾选择数据——在管道线中使用head、tail
...指令 | head -n lines :将输出的头n行提取
...指令 | tail -n lines :将输出的尾n行提取
15:按列删除数据——colrm(column remove)
colrm [startcol] [endcol]:删除开始~结束列【适用于二维、表格显示的数据】
16:文件比较过滤器

【查分与补丁:使用 diff 旧文件 新文件 得出差分,然后在其他地方使用 patch 按照差分来修改旧文件,就得到了新文件。这就是原始的 差分—补丁 思想。】
17:逐字节比较——cmp
cmp 文件1 文件2
18:按行比较,有序
comm 文件1 文件2
19:无序比较、差分——diff
diff 文件1 文件2
20:按列抽取数据——cut
cut -c list file:list为要抽取的列下标集合,如 ,,,
21:组合数据列——patse
patse files...:将多个文件中内容按列组合,成为一张大表
22:创建行号
nl -v 起始行号 -i 行号增量 files... :为文件中每行创建行号
23:统计行、单词和字符数量——wc(word count)
wc files
=======
输出:行数 单词数 字符数 文件名
24:制表符 替换成 空格
expand files
25:空格 替换成 制表符
unexpand files
26:拆分长行
fold -w 行宽(小于等于80) file1 > file2
【一行80字符:因为第一代计算机使用穿孔卡片存储数据,当时的卡片一行80列,每列一个字符】
27:格式化段落
fmt file
28:按页格式化——pr
pr file
29:按特定模式(正则)选取行——grep
grep pattern files :按特定模式抽取行
30:选取特定模式开头的行——look
look pattern files
31:数据排序——sort
sort [-d -f -n] infile > outfile:将infile数据排序后输出到outfile
sort -c file:检查文件数据是否有序
32:ASCII码字符顺序

【常用记忆:空格在数字之前,数字在大写之前,大写在小写之前】
33:重复行操作——uniq
uniq file:去除重复行后输出
uniq -d file1 > file2:查看重复行
uniq -c file1 > file2:统计重复行数
uniq -u file:查看唯一重复行
34:合并两个文件中的有序数据——join
join [- field][- field] file1 file2:根据文件1与文件2中对应的field值相同的行合并在一起
35:拓扑排序——tsort
tsort file:对文件进行拓扑排序
36:字符替换——tr
tr 原字符 替换字符 < file 【注意是字符替换】
《Unix&Linux大学教程》学习笔记四:标准I/O 与 过滤器的更多相关文章
- 《Unix&Linux大学教程》学习笔记一:历史与常识
“为什么说Unix/Linux是自由的: 因为我们可以自己组装一个操作系统:Unix/Linux内核+其他实用工具+编程工具+GUI 因为我们可以自由地获取开源工作者 ...
- 《Unix&Linux大学教程》学习笔记6——Unix文件系统
1:Unix文件类型——3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服 ...
- 《Unix&Linux大学教程》学习笔记5 :正则表达式
1:Unix下正则表达式规则
- 《Unix&Linux大学教程》学习笔记七:进程与作业控制
1:进程:一个内存中的程序+程序所需数据+管理程序的各种状态信息. 2:进程由内核进行管理,内核使用调度器,给予进程一个时间片来运行,然后切换到下一个进程. 3:进程分叉 fork :创建一个子进程 ...
- 《Unix&Linux大学教程》学习笔记三:Shell常识
1:全局变量与局部变量 全局:可以从父进程传递给子进程的变量,如:环境变量. 局部:只能在特定的子Shell中使用的变量. 局部变量变全局:使用 “export 局部” 指令将创建的局部变量导出到环境 ...
- 《Unix&Linux大学教程》学习笔记二:指令常识
1:指令的本质——调用可执行程序 在Shell输入命令时,其实就是根据名称运行相应的程序. 2:在系统中查找程序 which 指令名 type 指令名 3:时间与日历 date [-选项] 参数 ca ...
- unix&linux大学教程 目录
第1章unix简介 第2章什么是linux?什么是unix 第3章unix连接 第4章开始使用unix 第5章gui:图形用户界面 第6章unix工作环境 第7章unix键盘使用 第8章能够立即使用的 ...
- Linux System Programming 学习笔记(四) 高级I/O
1. Scatter/Gather I/O a single system call to read or write data between single data stream and mu ...
- 《嵌入式Linux基础教程学习笔记一》
常用书目下载地址:http://www.cnblogs.com/pengdonglin137/p/3688029.html 第二章 1.进程上下文和中断上下文(Page20) 当应用程序执行系统调用, ...
随机推荐
- brew装snappy
brew装snappy,我在mac上已经开了socks5代理,也尝试了lantern或者duotai.org,结果都下载不动. 解决方法:把snappy包手动从浏览器下载,然后放到缓存目录,再执行br ...
- <sdoi2017>树点涂色
题解: 首先,按照原树,构建出一个全部都是虚边的LCTLCT ,并用树剖维护每个点到根节点的路径权值valval.可以发现,每个点到根节点的路径权值就是每个点到根节点的路径上实链的个数. 我们发现,操 ...
- Unity 之 场景切换
Application.LoadLevel();//场景名称或索引,删除掉原场景的所有东西 Application.LoadLevelAdditive()//添加并加载场景,不删除当前场景的物体, ...
- [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (一)
部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 29 理解图像特征 目标本节我会试着帮你理解什么是图像特征,为什么图像特征很重要,为什么角点很重要等.29.1 解释 我相 ...
- 替换字符串空格、tab制表符
\ ASCII (NUL ) 字符 \' ASCII 39 单引号 (“'” ) 字符 \" ASCII 34 双引号 (“"” ) 字符 \b ASCII 退格符 \n ASCI ...
- UVA.12230.Crossing Rivers(期望)
题目链接 /* 到达一条河时,船在河中的位置是随机的,所以船到达岸边需要的时间在 0~2l/v 均匀分布,所以船到岸的期望为 (0+2l/v)/2 过河需要 l/v 的时间,所以过一条河总的期望为 ( ...
- error MSB3073 解决办法
发现拷贝命令编译错误,查看输出列表发现时无法找到相应的路径. 1.顺着这个思路第一个想到的是中文路径的问题,先修改了盘符的中文名称,发现还是无法解决具体的问题. 2.后来反复查阅网上的资料,发现帮助并 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第五课 (案例) 豆瓣分析 (课堂笔记)
动态讲求 , 翻页参数: # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/9/1 0001 3:44 import requests,json class ...
- 潭州课堂25班:Ph201805201 第十三课 文件 (课堂笔记)
对文件的操作, open('h:\\asa.txt') r 以只读方式打开 w 以写入方式打开,会覆盖已文件 X 如果已存在,会异常 a 如果文件存在,则在 ...
- 基于Grunt构建一个JavaScript库
现在公认的JavaScript典型项目需要运行单元测试,合并压缩.有些还会使用代码生成器,代码样式检查或其他构建工具. Grunt.js是一个开源工具,可以帮助你完成上面的所有步骤.它非常容易扩展,并 ...