系统集成03-文本编辑器

系统集成03-文本编辑器

文本处理是操作系统对文件管理的基础操作,文本编辑器是计算机软件中的一种,主要用来编写和查看文本文件。不同的文件编辑器有不同的辅助功能。

1 Linux常用文本编辑器介绍

文本编辑器是操作系统基础的功能软件之一。根据使用环境的不同,Linux的文本编辑器有很多类型

常见的Linux文本编辑器有:

  1. emacs

    emacs是一款功能强大的编辑器,与其说是一款编辑器,它更像一个操作系统。emacs带有内置的网络浏览器、IRC客户端、计算器,甚至是俄罗斯方块。当然,emacs需要在图形化界面的Linux中使用

  2. nano

    nano是命令行界面下一个相对简单的文本编辑器,它是为了代替闭源的Pico文本编辑器而开发的,1999年以GPL协议发布第一个版本,是一个自由软件,同时也是GNU计划的一个组成部分。nano有很多人性化的功能设计,如语法高亮、正则表达式搜索和替换、平滑滚动、多个缓冲区、自定义快捷键、撤销或重复编辑。

  3. gedit

    gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它简单易用,有良好的语法高亮,对中文支持很好,支持包括GB2312、GBK在内的多种字符编码。gedit是一款自由软件。gedit包含语法高亮和标签编辑多个文件的功能。利用GNOMEVFS库,它还可以编辑远程文件。它支持完整的恢复和重做系统以及查找和替换。

  4. kedit

    与gedit类似,kedit是KDE图形化桌面中常用的一种文本编辑器。kedit是一个非常小的编辑器,特别适用于浏览文本和各种配置文件

  5. vi

    vi是标准的Unix文本编辑器,也是最古老的文本编辑器、最通用的文本编辑器。所有的Linux、Unix都默认带有vi文本编辑器。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同,但是由于其运行于字符界面,并可用于所有unix/linux环境,仍被经常使用

    vi的三种命令模式:

    • Command:命令模式,用于输入命令
    • Insert:插入模式,用于插入文本
    • Visual:可视模式,用于浏览文本
  6. vim

    Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰
    富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

    Vim具有多种模式:

    • 基本模式:普通模式、插入模式、可视模式、选择模式、命令行模式、Ex模式
    • 派生模式:操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式
    • 其他:Evim

2 唯一神vim

2.1 vim编辑器命令格式

命令格式:

vim [options] [file]...	#编辑指定文件
vim [options]-	#从标准输入(stdin)读取文本
vim [options]-t tag	#编辑tag定义出的文件
vim [options]-q [errorfile]	#编辑第一个出错处的文件

常见参数:

  • -c:打开文件前线执行指定的命令
  • -R:以只读方式打开,但是可以强制保存
  • -M:以只读方式打开,不可以强制保存
  • -r:回复崩溃的会话
  • +num:从第num行开始

2.2 vim基础操作

2.2.1 vim打开文件

vim filename
  • 如果filename文件存在,则会打开文件并显示文件内容
  • 如果filename文件不存在,vim会在下面提示[NewFile],并且会在第一次保存时创建该文件

2.2.2 移动光标

  • 快速移动光标
    • 上下左右键或k、j、h、l键上下左右移动光标
    • 0 移动到行首
    • g0 移到光标所在屏幕行行首
    • :n 移动到第n行
    • gg: 到文件头部
    • G: 到文件尾部
  • 数据操作
    • yy or Y: 复制整行文本
    • y[n]w: 复制一(n)个词
    • d[n]w: 删除(剪切)1(n)个单词
    • [n]dd: 删除(剪切)1(n)行
    • u: 复原前一个动作(撤销)

2.2.3 数据操作

  • 复制:
    • yy or Y: 复制整行文本
    • y[n]w: 复制一(n)个词
  • 粘贴:
    • 面向行的数据:
    • p放置数据在当前行的下面
    • P放置数据在当前行的上面
    • 面向字符的数据:
    • p放置数据在光标的后面
    • P放置数据在光标前
  • 删除:
    • d[n]w: 删除(剪切)1(n)个单词
    • [n] dd: 删除(剪切)1(n)行

2.2.4 查找与替换

  • 查找
    • :/word 在光标之后查找一个字符串word,按n向后继续搜索,N向上搜索。
    • :?word 在光标之前查找一个字符串word,按n向后继续搜索。
  • 替换
    • :1,5s /word1/word2/g 将文档中1-5行的word1替换为word2,不加g则只替换每行的第一个word1。
    • :%s /word1/word2/gi 将文档所有的word1替换为word2,不区分大小写。

2.2.5 设置搜索高亮

  • 临时设置时,在命令模式下输入

    :set hlsearch

  • 永久设置,需要在/etc/vimrc中配置,增加一行set hlsearch,然后更新变量即可

2.2.6 修改文件

使用vimfilename打开文件后,进入的是普通模式。当想要修改文件时,可以按i键进入插入模式。进入插入模式时,会在最下面提示当前模式是Insert。按ecs可以退出插入模式,回到普通模式。

2.2.7 撤销或重做

  • u 撤销最近的改变
  • U 撤销当前行自从光标定位在上面开始的所有改变
  • Ctrl+r 重做最后一次“撤销”改变

2.2.8 保存文件并退出

  • 退出插入模式:

    在插入模式下按ecs键退出插入模式

  • 常用的保存/退出的命令:

    • :w 保存
    • :q 退出
    • :wq 保存并退出
    • :q! 强制退出
    • :wq! 强制保存并退出

3 文本处理

查看文件方面可以使用cat、more、less、more、tail等等, 上一篇博客有写到, 这里就不展开介绍了

提取列或字段-cut&awk

cut用于显示文件或者标准输入的特定列

命令格式:

cut [option] ... [文件]

常用选项:

  • -b[范围]:仅显示行中指定直接范围的内容
  • -c[范围]:仅显示行中指定范围的字符
  • -d:指定字段的分隔符,默认的字段分隔符为“TAB”
  • -f[范围]:显示指定第num个字段的内容,可以用逗号隔开显示多个字段

awk是一个强大的文本分析工具,简单来说awk就是把文件或者标准输入逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理

[root@openEuler~]#last -n 5 | awk ‘{print$1}’	#显示最近登录系统的5个账号

awk基本命令格式:awk动作文件名,如:awk '{print$0}'t est.txt

管道命令符“|”的作用是将前一个命令的标准输出当作后后一个命令的标准输入,格式为“命令A | 命令B”

提取关键字-grep

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

命令格式:grep [option] [file] ...

常用选项:

  • -c:统计符合样式的行数
  • -i:忽略大小写
  • -w:只显示全子符合的行
  • -x:只显示全行符合的行

文本统计-wc

wc命令用于计算字数。利用wc指令我们可以计算文件的字节数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据

命令格式:wc [option] ... [file] ...

常用选项:

  • -c或--bytes或--chars:只显示字节数
  • -l或--lines:只显示行数
  • -w或--words:只显示字数

文本排序-sort

sort命令可以将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

命令格式:sort [option] ... [file] ...

常用选项:

  • -b:忽略每行前面开始的空格字符
  • -c:检查文件是否已经按照顺序排序
  • -d:排序时,处理英文字母、数字及空格字符外,忽略其他字符
  • -f:排序时,将小写字母视为大写字母
  • -n:依照数值的大小排序
  • -r:以降序排列,默认升序
  • -o <文件>:将排序后的结果存入指定的文件
  • -u:忽略相同行(重复项)

文本比较-diff

diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录

命令格式:diff [option] ... file

常用选项:

  • -B:不检查空白行
  • -c:显示全部内文,并标出不同之处
  • -i:忽略大小写的不同
  • -r:比较子目录中的文件
  • -w:忽略全部的空格字符

文本操作工具-tr&sed

tr指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备,常用于转换或删除文件中的字符

命令格式:tr [option] ... set1 [set2]

[root@openEuler~]#cat text.txt | tr a-z A-Z	#将小写转换为大写输出

常用选项:

  • -c:反选设定字符,也就是符合set1的部分不做处理,不符合的剩余部分才进行转换
  • -d:删除字符
  • -s缩减连续重复的字符成指定的单个字符
  • -t:削减set1指定范围,使之与set2设定长度相等

相比较tr,sed可以修改字符串。sed是一种在线编辑器,可以对来自文件、以及标准输入的文本进行编辑。执行时,sed会从文件或者标准输入中读取一行,将其复制到缓冲区,对文本编辑完成之后,读取下一行直到所有的文本行都编辑完毕。所以sed命令处理时只会改变缓冲区中文本的副本,如果想要直接编辑原文件,可以使用-i选项或者将结果重定向到新的文件中。

命令格式:sed [option] ... [option] {script-only-if-no-other-script} [input-file]...

常用选项:

  • -n:取消默认输出
  • -e:多点编辑,可以执行多个子命令
  • -f:从脚本文件中读取命令
  • -i:直接编辑原文件
  • -l:指定行的长度
  • -r:在脚本中使用扩展表达式
posted @ 2023-05-06 16:35  Qurare  阅读(116)  评论(0编辑  收藏  举报