Linux系统中的文本处理功能及相关命令

在Linux系统中,经常要对各种服务器程序的配置文件进行修改,对创建的文件进行编辑工作,这里我以Vim编辑器为例,讲解在Ubuntu系统中文本处理功能。

1 文字处理器

1.1 Vim简介

在Vim出现之前,命令行界面下的文本编辑工具是vi,而Vim在vi的基础上做了改进和优化,加入了对GUI的支持。

1.2 Vim模式

Vim一般有三种模式:命令模式(常规模式)、插入模式、末行模式(ex模式)。

命令模式

Vim启动后默认进入的是命令模式,在任何模式下都可以按Esc键返回到命令模式,可以尝试多按几次,确保返回的是命令模式。在命令模式下,可以键入不同的命令完成选择、复制、粘贴、删除等操作。

yy复制当前行
yw复制光标后的一个单词
p粘贴
x删除当前字符
X删除前一个字符
dd删除当前行
dw删除光标后的一个单词
u撤销上一个操作
r替换当前字符

插入模式

在插入模式下可以编辑文本内容,在命令行模式下按i、a等键可以进入插入模式,在此模式下可以输入文本,但命令执行后的字符插入位置不同,具体的字符插入位置如下:

i当前字符之前
I当前行首第一个非空字符之前
a当前字符之后
A当前行尾
s删除当前字符,光标停留在下一个字符处
S删除当前行,光标停留在行首
o在当前行的下方插入一个新行,光标停留在新行行首
O

在当前行的上方插入一个新行,光标停留在新行行首

末行模式

在命令行模式下按“:”键可以进入末行模式,这时光标会移动到屏幕底部,在这里可以保存修改或退出Vim,也可以设置编辑环境、寻找字符串、列出行号等。

:w filename以指定的文件名filename保存并退出
:w保存当前修改,还可以继续编辑
:wq保存并退出Vim环境
:q退出Vim环境(使用时若没保存文本,会出现错误提示)
:q!不保存修改,并强制退出Vim环境
:x保存并退出Vim环境,相当于“:wq”命令
ZZ保存并退出Vim环境
:set number显示行号
:! 系统命令执行一个系统命令并显示结果
:sh切换到命令行,按Ctrl+D组合键切换回Vim环境

Vim环境下的查找和替换

行内搜索

命令f表示在光标所在的行内进行搜索。例如,ft表示光标所在行查找字母t,光标会定位到第一个出现字母t的位置,此时输入“;”表示继续往下查找,输入“,”表示反方向查找。

搜索整个文件

在命令行模式或末行模式下,输入“/”,在屏幕的地步会出现一个“/”符号,在“/”后面输入想要查找的内容,按Enter键结束,当然在“/”后面也可以输入正则表达式进行搜索。使用n命令可以重复查找,如按“/”查找,输入关键字查找出来后,按n键在查找到的关键字之间切换,查找到的内容会用颜色表示,方便观察。

替换

替换文本内容是在末行模式下进行的,即如果需要替换则输入“:”,进入命令行模式。

例如查看test文件的内容为:

       使用替换命令将文本中的O替换为M,命令如下,%表示操作的范围,s表示替换操作,/O/M表示搜索文本和替换文本,g表示对每一行的每一个实例进行替换,如果g缺失,则只替换每一行的第一个符合条件的实例。

       替换的结果如下:

文本切片和切块

剪切命令cut

用于在数据中提取需要的部分,cut命令是以行为对象来进行操作的。cut命令的格式:cut option [file]

其中option选项是指定cut以何种方式进行裁剪,并给出剪切的具体位置,file是cut命令操作对象的文件名,如果不指定file参数,cut命令将读取标准输入。option选项参数及其含义如下:

-b以字节为单位进行剪切
-c以字符为单位进行剪切
-f以域为单位进行剪切
-d自定义分隔符
-n取消删除多字节字符

粘贴命令paste

paste的命令正好和cut相反,是向文本中添加信息。命令格式为:paste [option] [file1] [file2]

连接命令join

join的命令和paste相似,简单来说也就是向文本中添加信息。命令格式:join [option] file1 file2

其中option选项可以省略,file1和file2是要操作的文件名,并且file1和file2必须是有序的,且包含相同的列。

文本比较

有序文件逐行比较命令comm

comm将逐行比较已经拍好序的文本,如果文本是杂乱的,则可以通过sort命令对文件进行排序。

命令的格式:comm [option] file1 file2

逐行比较命令diff

diff同样也是比较文件的区别,对文件进行逐行比较,支持多种输出形式,相对于comm命令来说,diff由两个优点:可以比较无序的文件;可以比较大的文件集,尤其是在程序开发的过程中,修改之后,利用diff可以很方便的查找版本之间的不同之处。

命令格式:diff [option] file

原文件比较命令patch:

patch命令用于更新文本文件,主要操作对象是diff生成的补丁文件,将旧版本的文件更新成新文件,首先利用diff命令查找文件的不同,生成patch命令可操作的diff文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值