第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个字段为连接字段。

排序: sort  [-dfnru]  [-o  outfile]  [infile…]  其中-o指定输出文件,可以和输入文件相同,sort会在处理中先保持原文件;

-d(dictionary)只查看字母、数字和空白符,-f忽略大小写,-n识别开头的数字并以数字排序,-r反向排序,-u(unique)相同行只显示一次。

sort  -c 不排序只检查是否有序。

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。

第20章  正则表达式

基本正则表达式和扩展正则表达式相比:花括号和圆括号必须使用反斜线引用( \{\}\(\) );不能使用?、+、| ;不能使用预定义字符类。

字典文件的常见位置/usr/share/dict/words。

第21章  显示文件

显示二进制文件:hexdump(默认以16进制)、od(默认以8进制)。

第22章   vi文本编辑器

ed(editor),ex(extended editor)、vi(visual editor)。

vi可以选择句子和段落:d2)删除当前向后2个句子,d5}删除5个段落。

u撤销上一次命令(包括u,因此按2次u相当于撤销又恢复),U(撤销对所在行所有修改),.(重复上一次操作,可任意选择操作位置)。

vi中有一个特殊的缓冲区称为编号缓冲区,共9个,编号从1到9,使用时双引号+编号+p/P("1p),其中p将缓冲区内容插入到当前行下一行,而大P将缓冲区内容插入到当前行下一行。

复制文本用y(yank,接出):yw(复制一个单词)、y10w(复制10个单词)、y2) (复制2个句子)、yy(复制1行)、10yy(复制10行)。复制后使用p或P粘贴。

改变字母大小写用~ :光标至要改变的字符,然后按~ ;7~ 则将光标及其后共7个字符改变大小写。

vi使用缩写 :ab (abbreviate,缩写),例如 :ab eg exceptionally gifted 则在输入模式时输入eg会自动变成exceptionally gifted ,要取消用 :una eg。

初始化文件:vi的初始化文件名为.exrc,Vim的初始化文件为.vimrc。每个子目录可以有自己vi初始化文件。

转载于:https://www.cnblogs.com/ph829/p/4313914.html

Unix Linux大学教程(三):过滤器、正则表达式、vi相关推荐

  1. 《Unix Linux 大学教程》 - 附录F

    学习笔记,内容基础,适合初学者. 阅读之前,请务必花30秒查看前言说明(在第一.二章前面部分) <Unix & Linux 大学教程> - 第一.二章 学习笔记   Unix简介 ...

  2. linux教程 实验报告,linux大学教程实验报告范文6

    linux大学教程实验报告范文6 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 Linux操作系统第六次实验1.执行以下命令,考虑 ...

  3. 安全狗+linux使用教程,三分钟秒懂!服务器linux安全狗安装详细教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 (nginx版)安装教程 以32位安装包为例子,64位安装包只要将对应的32改成64即可. 步骤一: 到http://safedog.cn下载软件安装包( ...

  4. UNIX/LINUX程序设计教程(1)-- 获取系统信息

          1.主机标识 每一台机器都有一个主机名,主机名由系统管理员指定,在网络中主机名可能是一个网络域名. 函数 gethostname() 和 sethostname() 可以用来获取和设置主机 ...

  5. unixlinux大学教程学习 第七章

    unix&linux大学教程学习 第七章 学习了第七章. 主要讲解键盘信号 每一个键盘对应一个信号.主要的有: ^代表 Ctrl <Backspance> erase ,删除一个字 ...

  6. linux shell教程(一)

    本教程摘自 C语言教程网 Shell教程目录     1.Shell简介     2.几种常见的Shell     3.Shell与编译型语言的差异     4.什么时候使用Shell     5.第 ...

  7. linux下启动tlq命令,UNIX/LINUX命令

    1 如何查看磁盘使用情况 查看磁盘空间 df -k 可以看出磁盘空间使用情况.以及分区或者逻辑卷的挂载目录等. $ df -k Filesystem 1024-blocks Free %Used Iu ...

  8. UNIX/LINUX 平台可执行文件格式分析

    UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出).COFF(Common Object F ...

  9. Unix实用工具教程:《sed与awk》修订第三版清晰版

    为什么80%的码农都做不了架构师?>>>    Unix实用工具教程:<sed与awk>修订第三版清晰版 本书介绍了一组名字奇特的Unix实用工具sed和awk,这组实用 ...

最新文章

  1. 如何设置chrome谷歌浏览器不显示图片
  2. 剑指 Offer 17. 打印从1到最大的n位数
  3. 《3D数学基础》系列视频:这次,真的是广告!
  4. win7系统怎么样在计算机里找桌面,如何在64位win7电脑中创建一个“显示桌面”的快捷方式...
  5. No changes detected
  6. 为什么L1稀疏,L2平滑?
  7. GitLab CI持续集成配置方案
  8. python--pexpect
  9. 解密阿里云之飞天平台内核
  10. 游戏筑基开发之环形链表及其基本功能(C语言)
  11. python输出间隔_在python中生成间隔之间的月份列表
  12. 如何检查Windows网络通信端口占用
  13. [FAQ10926][USB serial number客制化][系列5]:如何实现可以通过pc工具来修改serialnumber?
  14. 矩阵论知识整理(未完成,同步更新)
  15. 云计算技术与应用课后答案第一章
  16. arch linux u盘安装,如何把ArchLinux安装到U盘上
  17. 十七、.net core(.NET 6)搭建基于Quartz组件的定时调度任务
  18. 项目生命周期、开发生命周期与产品生命周期的区别
  19. 微信小程序IOS sticky 兼容写法
  20. Bloom Filter算法优化

热门文章

  1. 二进制搜索算法_使用安全摄像机镜头解释二进制搜索算法
  2. 创建新的apple id_Google是新的Apple吗?
  3. react 组件样式_如何使用样式化组件为React组件创建视觉变体
  4. 老年痴呆 数字化_设计老年人愉快数字体验的5条原则
  5. 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字
  6. 云端应用SQL注入攻击
  7. IDEA新建springboot项目发生错误
  8. PL/SQL编程:用Loop-exit-when-end循环算出5的阶乘
  9. java培训教程分享:Java中用户如何自定义异常?
  10. h5 和native 交互那些事儿