Unix & Linux大学教程(三):过滤器、

第16章  过滤器:简介和基本操作

删除数据列用colrm:colrm  [startcol [endcol]]  如果没有endcol则删除从startcol至行末尾所有的列。

第17章  过滤器:比较和抽取

比较任意两个文件:cmp file1 file2  显示不同字节数及所在行。

比较有序文本文件:comm [-123] file1 file2  显示三列:文件1独有、2独有、共有,而参数-123可以控制哪些列不显示。

比较无序文本文件:diff  [-bBiqswy]  [-c|-Clines|-u|-Ulines]  file1 file2  其中-i忽略大小写,-w忽略所有空白,-b忽略空白符数量上的区别,

-B忽略所有空白行,-q忽略细节(相当于cmp);-c(context)列出不同处的上下文,-u(unified output)统一输出,类似于-c但没有重复行,-y并排显示。

diff的输出显示如何将第一个文件修改为第二个文件,使用3个不同的单字符:c(change)、d(delete)和a(append),每个字符左右一串行号,考虑到可读性,部分行之间用若干连字符(---)构成的线分开。

可以认为paste与cat相似,paste水平组合数据,而cat垂直组合数据。paste也可以加-d参数指定分隔符,如paste -d ‘|%‘ …将轮流使用| 和%分隔数据列。

第18章  过滤器:统计和格式化

创建行号:nl [-v start] [-i increment] [-b a] [-n]

在vi中查看不可见字符使用命令 : :set list ,关闭用   :set nolist 。

格式化行使用fold命令: fold [-s] [-w width] [file …]  其中width指定新行宽度,-s告诉fold不分割单词。

格式化段落使用fmt: fmt [-su] [-w width] [file …] 其中-u减少空格,使单词间最多一个空格,-s只拆分长行但不合并短行。

插入一点:Dvorak键盘的历史
现在通用的QWERTY键盘,以键盘第一排字母的左边6个字母而得名。这种键盘是1868年由Christopher Sholes申请专利,后来在全世界占据了主导地位。这种键盘的一个特点是,常用字母被有意地分隔开了,原因是为了避免打字机里的连动杆(typebar)纠结在一起。

第19章  过滤器:选取、排序、组合及变换

grep: g(global,代表全局),re(regular expression,正则表达式),p(print,打印)。

look选取以特定模式开头的行,速度比较快,只能从文件中读取不能从标准输入读取。另外look可用来查找以固特定模式开头的所有单词。

例如在vi中不能确定某个单词的拼写,可使用  :r !look simult ,该命令将所有以simult开头的单词编辑到缓冲区,可以选择正确的单词,将其余的删除。

Unix中许多程序用-i(ignore)表示忽略大小写,但有时候用-f(fold),fold是一个技术术语,表示将小写字母看成大写,反之亦然,其起源不详。

ASCII码排序(C或POSIX)和字典排序(en_US)。环境变量LC_COLLATE指定排序方式(export LC_COLLATE=C 或POSIX),使用locale命令可查看包括环境变量LC_COLLATE在内的区域设置变量的当前值。

合并两个文件中的有序数据:join [-i] [-a1|-v1] [-a2|-v2] [-1 field1] [-2 field2] file1 file2

其中-a1输出文件1中所有,-v(reverse)只输出不匹配的,-1 field1指定第一个文件的第field1个字段为连接字段。

tsort将一组偏序转换为全序,代表topological sort。

转换字符用tr:  tr  [-cds]  [set1  [set2] ]  其中,-s将重复字符压缩成一个,-d删除指定字符,-c匹配所有不在第一组中的字符。例如,tr  A-Z a-z < old  > new 和tr [:upper:] [:lower:] < old  > new 等价(:digit:等价于0-9),都是将old中的所有大写字母转换为对应小写字母并重新输出至new。

时间: 2024-10-05 08:42:38

Unix & Linux大学教程(三):过滤器、的相关文章

《Unix &amp; Linux 大学教程》(转)

<Unix & Linux 大学教程> - 第一.二章 学习笔记    Unix简介 & 什么是Linux?什么是Unix <Unix & Linux 大学教程> - 第三.四章 学习笔记    Unix连接 & 开始使用Unix <Unix & Linux 大学教程> - 第五.六章 学习笔记    GUI:图形用户界面 & Unix工作环境 <Unix & Linux 大学教程> - 第七.八章 学

Unix &amp; Linux大学教程(四):Unix文件系统、进程和作业控制

第23章  Unix文件系统 命名管道 mkfifo : mkfifo [-m mode]  pipe .命名管道必须显式创建,且不会消失(可用rm命令删除). proc文件是用来访问内核信息的伪文件.例如某进程ID为1952,那么该进程相关信息可以在/proc/1952目录下的文件中找到. VFS(virtual file system,虚拟文件系统)实现文件处理的细节. 第24章  目录操作 ~代表home目录:cd - 可以切换到上次访问目录.

Unix &amp; Linux大学教程(二):

第11章  shell Shell两大家族:Bourne shell家族(Bourne Shell.bash.FreeBSD.Korn Shell.Pdksh.Zsh)和C-Shell家族(C-Shell.Tcsh). 临时改变shell只需要直接在命令行输入shell名称运行shell,按^D可终止,回到最初shell:查看/etc/shells文件可知道系统安装了哪些shell. 改变登录shell使用chsh(change shell),其语法为:chsh [-s shell]  [use

linux入门教程(三) Linux操作系统的安装

因为笔者一直都是使用CentOS,所以这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux text 按回车.前者是图形下安装,可以动鼠标的,后者是纯文字形式的.建议初学者用前者安装.直接回车后,出现一下界面: 这一步是要提示你是否要校验光盘,目的是看看光盘中的安装包是否完整或者是否被人改动过,一般情况下,如果是正规的光盘不需要做这一步操作,因为太费时间.接下来是: 这一步没有什么可

《Unix&amp;Linux大小教程》学习笔记6——Unix文件系统

1:Unix文件类型--3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服务.分三种: 特殊文件:设备驱动.物理设备的文件表示(键盘.显示器之类)等 命名管道:将一个程序的输出 定向到 另一个程序的输入 proc文件:用于访问内核信息 2:特殊文件 特殊文件是用于表示物理设备的伪文件,位于 /dev 目录下. 这些特殊文件主要分三组:硬件.终端.伪设备. 原文地址:htt

unix&amp;linux常用命令分类表

本附录([美]哈恩:<Unix&Linux大学教程>附录B,张杰良译,清华大学出版社,2010年)摘要描述了书中所涉及的143个Unix使命,并且按照命令的类别进行排列.在每个名称的后面,方括号中的数字表示讨论该命令的参考章号. Unix命令分类如下: 构建块 文件 系统工具 命令工具 文件系统 终端 比较文件 登录和注销 文本格式化 目录 进程和作业控制 工具 显示数据 Shell 用户和用户标识 文档资料 选择数据 变量 编辑 构建块 cat [16] 组合文件,将标准输入复制到标

事件驱动编程——《Unix/Linux编程实践教程》读书笔记(第7章)

1.curses库 /* 基本curses函数 */ initscr(); // 初始化curses库和tty endwin(); // 关闭curses并重置tty refresh(); // 使屏幕按照你的意图显示 move(r, c); // 移动光标到屏幕的(r, c)位置 addstr(s); // 在当前位置画字符串s addch(c); // 在当前位置画字符c clear(); // 清屏 standout(); // 启动standout模式(一般使屏幕反色) standend

I/O重定向和管道——《Unix/Linux编程实践教程》读书笔记(第10章)

1.I/O重定向的概念与原因 及 标准输入.输出的标准错误的定义 所以的Unix I/O重定向都基于标准数据流的原理.三个数据了分别如下: 1)标准输入--需要处理的数据流 2)标准输出--结果数据流 3)标准错误输出--错误消息流 概念:所以的Unix工具都使用文件描述符0.1和2.标准输入文件的描述符是0,标准输出的文件描述符是1,而标准错误输出的文件描述符则是2.Unix假设文件描述符0.1.2已经被打开,可以分别进行读写操作. 通常通过shell命令行运行Unix系统工具时,stdin.

Linux makefile教程之书写规则三[转]

书写规则———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法.在 Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么.一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标.如果第一条规则中的目标有很多个,那么第一个目标会成为最终的目标.make所完成的也就是这个目标. 好了,还是让我们来看一看如何书写规则. 一.规则举例fo