当前位置: 首页 > 编程日记 > 正文

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

第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

相关文章:

微信小程序获取多选框选中值和选中值对应的id

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 官方文档中只有获取多选框的值的方法&#xff0c;但是我需要获取选中的值同时还要获取选中值对应的id&#xff0c;但是又不能操作DOM获取&#xff0c;相信和我有同样需求的伙伴们都会为此发愁&#xff0…

调试代码遗留_陷入遗留代码地狱吗? 这里有一些想法可以帮助您处理情况

调试代码遗留by Felipe Lopes通过Felipe Lopes 陷入遗留代码地狱吗&#xff1f; 这里有一些想法可以帮助您处理情况 (Stuck in legacy code hell? Here are some few thoughts to help you manage the situation) I’m gonna tell you a little story about how I ended up i…

求二维数组最大子数组

结对队友&#xff1a;胡康臻、杨寒寒 1、设计思想&#xff1a; 首先定义产生二维数组&#xff0c;定义可输入二维数组行和列&#xff0c;各位数随机产生&#xff1b; 然后进行最大子数组的求和比较&#xff0c;从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较&…

UVa 11021 (概率 递推) Tribles

Tribble是麻球&#xff1f; 因为事件都是互相独立的&#xff0c;所以只考虑一只麻球。 设f(i)表示一只麻球i天后它以及后代全部死亡的概率&#xff0c;根据全概率公式&#xff1a; f(i) P0 P1 * f(i-1) P2 * f(i-1)2 ... Pn * f(n)n 每个麻球死亡是独立的&#xff0c;所以…

积分页面布局记录

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 、 // pages/user/my_integral/record/record.js var app getApp(); var util require("../../../utils/util.js") Page({data: {url_data: ,username: ,usertop: ,tab: 1…

uber_Uber是如何制成的

uberby Dmytro Brovkin由Dmytro Brovkin Uber是如何制成的 (How Uber was made) Uber has transformed the world. Indeed, its inconceivable to think of a world without the convenience of the innovative ride sharing service. Tracing its origins in a market which …

HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,

&#xff11; 标签包含规范 ◆div可以包含所有的标签。 ◆p标签不能包含div h1等标签。 ◆h1可以包含p&#xff0c;div等标签。 ◆行内元素尽量包含行内元素&#xff0c;行内元素不要包含块元素。 2 规避脱标流 ◆尽量使用标准流。 ◆标准流解决不了的使用浮动。 ◆浮动解决不了…

Java Socket发送与接收HTTP消息简单实现

在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务&#xff0c;它可以用来模拟HTTP服务&#xff0c;用它可以截获HTTP请求的原始码流&#xff0c;让我们很清楚的了解到我们向服务发的HTTP消息的结 构&#xff0c;对HTTP请求消息有个清晰的认识。这一节我想写了一个…

微信小程序日期相减得出天数

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; // 日期结算 num_data: function (e) {var start_date new Date(this.data.start_date.replace(/-/g, "/"));var end_date new Date(this.data.end_date.replace(/-/g, &q…

es6 ... 添加属性_如何在10分钟内免费将HTTPS添加到您的网站,以及为什么您现在不止需要这样做......

es6 ... 添加属性by Ayo Isaiah通过Ayo Isaiah 如何在10分钟内免费将HTTPS添加到您的网站&#xff0c;以及为什么现在比以往更需要这样做 (How to add HTTPS to your website for free in 10 minutes, and why you need to do this now more than ever) Last week, Google ann…

程序员跳槽全攻略——读书笔记

有同学说&#xff0c;我技术很好啊&#xff0c;又会机器学习又会编译原理&#xff0c;凭什么那些写Javascript的薪水比我高一倍&#xff1f; 谁让你在一家建站公司上班呢。对一家做网站的公司而言&#xff0c;机器学习和编译原理是不能为它带来收益的&#xff0c;而Javascript写…

[转] Gradle: 此时不应有 Androidandroid-studiosdk oolslib\find_java.exe。解决方法

上述问题主要是java路径的问题&#xff0c;这里主要给出解决方案&#xff0c;至于为什么这么解决的&#xff0c;大家可以学学bat语言。想问的可以留言我。 dx.bat 根据安装目录&#xff0c;我的是D:\Program Files (x86)\Android\android-studio\sdk\build-tools\android-4.2.2…

微信小程序和微信小程序之间的跳转和传参示例代码附讲解

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 一&#xff1a;微信小程序跳转 使用限制 需要用户触发跳转 从 2.3.0 版本开始&#xff0c;若用户未点击小程序页面任意位置&#xff0c;则开发者将无法调用此接口自动跳转至其他小…

电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图

电子界卡组构建2019Kriptofolio应用程序系列—简介 (Kriptofolio app series — Introduction) Welcome to this series of blog posts where I will be creating a modern Android app. I will use the best tools and practices available in the year 2018–2019. I am doin…

python操作mysql数据库实现增删改查

Python 标准数据库接口为 Python DB-API&#xff0c;Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库&#xff0c;你可以选择适合你项目的数据库&#xff1a; GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOr…

弹性布局,自动按比例居中

1. 让行类盒子及盒子的元素 自动按比例居中效果图 html <view classaaa><view classbbb>aaaaaaaaa</view><view classbbb>aaaaaaaaa</view><view classbbb>bb</view><view classbbb>aaaaaaaaa</view> </view> c…

Ubuntu 14.04系统托盘图标问题,skype托盘图标显示

Ubuntu 14.04系统托盘图标问题&#xff0c;skype托盘图标显示_瑞波支付_新浪博客 Ubuntu 14.04 取消了系统托盘白名单机制&#xff0c;导致使用传统系统托盘技术的程序无法显示出托盘图标,dconf-editor也无力解决这个问题 。Ubuntu Unity桌面目前使用的技术是indicator-applica…

以太坊去中心化_开发以太坊去中心化投票应用程序的指南

以太坊去中心化by Timothy Ko蒂莫西高(Timothy Ko) 开发以太坊去中心化投票应用程序的指南 (A guide to developing an Ethereum decentralized voting application) After the entire cryptocurrency market passed 700 billion dollars in market cap, the cryptocurrency s…

Intellij IDEA的下载和使用(针对学生的免费使用计划)

一、下载和使用授权&#xff08;针对学生&#xff09; 1、下载 可以在Intellij IDEA官网上下载需要的版本。下载地址&#xff1a;https://www.jetbrains.com/idea/ 2、学生免费试用 首先&#xff0c;你得现有你们学校的官方邮箱账户&#xff0c;例如XXXYYY.edu.cn 其次&#xf…

LPC1768基本输入输出GPIO使用

LPC1788通用IO口的控制包含了一些基本的组件,比如设置推挽输出,开漏输出,上拉电阻等,我们今天来看看. 首先使用GPIO要打开GPIO的系统时钟 LPC_SC->PCONP | (1<<15);//gpio 时钟 然后需要选择我们选定引脚的功能,有些引脚有多个功能,通过寄存器可以从中选择一个 之后是…

微信小程序发红包功能实现,附效果图加讲解。

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 需要做红包功能的可以找我&#xff0c;收费卖源码&#xff0c;也承接开发。此博文仅示例。 流程效果图&#xff1a; 图片1触发wx.sendBizRedPacket({})吊起图片2&#xff0c;点击开&#xff0c;出现图…

项目部署时网关怎么回事_使用Kubernetes部署聊天网关(或技术按预期运行时)...

项目部署时网关怎么回事by Richard Li理查德李(Richard Li) 使用Kubernetes部署聊天网关(或技术按预期运行时) (Using Kubernetes to deploy a chat gateway (or when technology works like it’s supposed to)) TL; DR (TL;DR) This is a story about what happens when clo…

如何用php实现分页效果

分页效果在网页中是常见的&#xff0c;可是怎样才能实现分页呢&#xff0c;今天做了两种方法来实现一下分页的效果 首先&#xff0c;我们需要准备在数据库里面准备一个表&#xff0c;并且插入数据&#xff0c;这些都是必需的前提工作了&#xff0c;不多说&#xff0c;如图所示&…

微信小程序在showToast中换行并且隐藏icon

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 实现代码&#xff1a; 注释&#xff1a;真机才有效果&#xff0c;开发工具展示icon属性无效 var a 11\r\n3wx.showToast({title: a,icon:none,duration: 5000})

node aws 内存溢出_如何使用Node.js和AWS快速创建无服务器RESTful API

node aws 内存溢出by Mark Hopson马克霍普森(Mark Hopson) 如何使用Node.js和AWS快速创建无服务器RESTful API (How to quickly create a serverless RESTful API with Node.js and AWS) In this beginner’s guide, we’ll briefly describe the “Serverless” software arc…

java学习之匿名内部类与包装类

匿名内部类&#xff1a; 所谓匿名内部类&#xff0c;顾名思义指的就是定义在类内部的匿名类&#xff0c;现有的spring框架开发以及java图形界面都经常用到匿名内部类。 下面来看一个代码&#xff1a; interface A{public void fun() ; } class B implements A{public void fun(…

【微信小程序】登录功能实现及讲解(获取用户唯一标识)

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 功能&#xff1a;登录实现并获取到用户唯一标识 官方文档地址&#xff1a;可以先看完我的文章再看官方地址 实现步骤&#xff1a;1.调用微信API wx.login()得到code 2.把得到的cod…

参考框架 系统 基准_带有基准的前端框架的真实比较(2018更新)

参考框架 系统 基准by Jacek Schae由Jacek Schae 带有基准的前端框架的真实比较(2018更新) (A Real-World Comparison of Front-End Frameworks with Benchmarks (2018 update)) This article is a refresh of A Real-World Comparison of Front-End Frameworks with Benchmar…

U盘重装MacOS-Sierra系统

Mac系统重新安装两种方法&#xff1a; 1、在线远程重装。 2、制作启动U盘进行重装。 理论上第一种比较简单&#xff0c;但是会比较耗时&#xff0c;实际操作中&#xff0c;由于网上下载的系统版本低于我现在MacOS的版本&#xff0c;导致无法安装&#xff0c;因此只能使用第二种…

this和that的区别和原理

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 本篇博文纯属个人见解&#xff0c;如有不妥&#xff0c;可以留言批评指正&#xff0c;谢谢。 var that this; this指的是当前的对象。 that是一个临时的变量&#xff0c;用于保存当…