Spark修炼之道(基础篇)——Linux大数据开发基础:第六节:vi、vim编辑器(二)

简介: 本节主要内容缓冲区的使用文件的存盘与读盘文本查找文本替换作者:周志湖 微信号:zhouzhihubeyond 网名:摇摆少年梦1. 缓冲区的使用在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改。vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修

本节主要内容

  1. 缓冲区的使用
  2. 文件的存盘与读盘
  3. 文本查找
  4. 文本替换

作者:周志湖
微信号:zhouzhihubeyond
网名:摇摆少年梦

1. 缓冲区的使用

在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改。vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修改的文本保存在缓冲区,此时硬盘上的原文件不变。下面让我们来演示一下缓冲区的使用。
假设采用vim 同时打开两个文本文件:

root@ubuntu:/home/xtwy# vim test2.txt test1.txt
//打开文件后,默认打开的是test2.txt
//此时我们使用:buffers命令可以看查缓冲区
//得到如下结果
:buffers
  1 %a   "test2.txt"                    line 1
  2      "test1.txt"                    line 0

这里写图片描述

:buffers命令给出的是当前编辑中所有的缓冲区状态,前面的数字是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,紧接着是与缓冲区所关联的文件名。缓冲区的状态有以下几种:

- (非活动的缓冲区)
a (激活缓冲区)
h (隐藏的缓冲区)
% (当前的缓冲区)
# (交换缓冲区)
= (只读缓冲区)
+ (已经更改的缓冲区)

在命令模式输入:open test1.txt进入test1.txt编辑界面,然后再输入:buffers查看缓冲区状态,得到如下结果

:buffers
  1 #    "test2.txt"                    line 1
  2 %a   "test1.txt"                    line 1

这里写图片描述

可以看到此时test1.txt加载为活动缓冲区,而test2.txt则被加载到交换缓冲区。此时利用:bprevious命令可以切换test2.txt为活动缓冲区,

这里写图片描述
执行后得到:
这里写图片描述
可以看到,此时已经切换回到text2.txt,即将text2.txt加载到当前活动缓冲区当中,采用:buffers命令得到如下结果:
这里写图片描述

更多缓冲区操作命令如下:

:buffers    电焊工缓冲区状态
:buffer 编辑指定缓冲区
:ball   编辑所有缓冲区
:bnext  到下一缓冲区
:bprevious  到前一缓冲区
:blast  到最后一个缓冲区
:bfirst 到第一个缓冲区
:badd   增加缓冲区
:bdelete    删除缓冲区
:bunload    卸载缓冲区

2. 文件的存盘与读盘

(一)保存并退出

在编辑模式中,如果文本编辑任务已经完成,想直接保存退出,返回到Linux CLI命令行的话,直接按ZZ即可。

(二)读取文件内容到缓冲区

在编辑模式中,采用:r命令读取文件内容到当前缓冲区,
这里写图片描述
:r test1.txt可以test1.txt文件内容写到缓冲区
这里写图片描述

(三)将缓冲区内容写到文件

在编辑模式中,采用:w命令将修改后的文件写到磁盘,也可以使用:wq命令将修改的文件写到磁盘上后退出vim返回inux CLI,如果不想保存直接退出,则使用:q!命令直接退出vim,返回到CLI命令行。

3. 文本查找

(1)一般搜索

使用?或/进行字符串查找,例如:
这里写图片描述
回车之后,光标将定位到下一个Spark上,如果还想往下搜索,则按n(next),如果想往上搜索,则按N

(2)正则表达式搜索

正则表达式搜索是指加入了像”^,$,.”等特殊匹配字符,它们的作用如下表:

搜索字符串 搜索描述 举例
:/^Spark 搜索以Spark为开头的行 Spark is ….
:/YARN$ 搜索以YARN为结尾的行 …Hadoop YARN
:/Ha…p 搜索Ha开头,中间有三个字符且以p结尾的字符串 Hadoop、Hadaap
:/e> 查找以e结尾的字符串,其中>符号是字符串结束指示符号,这里\不是转义字符,而是与>组合到一起,来表示特殊意义 like、source
:/\<Had 查找以Had作为开始的字符串,\< 同样具有特殊意义 Hadoop、Hadoo
:/Spa* 查看字符串中出现至少一次Spar的字符串,\< 同样具有特殊意义 Spark、SpaSpark
:/Sp[ae]rk 匹配Spark或Sperk Spark、Sperk

4. 文本替换

文本替换使用以下语法格式:

:[g][address]s/search-string/replace-string[/option]

其中address用于指定替换范围,下表给出的是常用示例:

//将当前缓冲区的第一行中的Downloading替换为Download
: 1 s/Downloading/Download

//将当前缓冲区中的第一行到第五行中的Spark替换为spark
:1,5 s/Spark/spark

//将当前缓冲区中的第一行到当前光标所在行的Spark替换为spark
:1,. s/Spark/spark

//将当前光标所在行到缓冲区最后一行的Spark替换为spark
:.,$ s/Spark/spark

//将整个缓冲区中的Spark替换为spark
:% s/Spark/spark

//当前行中第一次搜索到的Spark替换为spark
: s/Spark/spark

//将当前行中所有的Spark替换为spark
:s/Spark/spark/g  

//将所有的and转换成And,不包括theta这种字符串,只会作用于the这种单独存在的字符串
:% s/\<the\>/The/g  

添加公众微信号,可以了解更多最新Spark、Scala相关技术资讯
这里写图片描述

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
12天前
|
Linux 开发工具
Linux的学习之路:5、粘滞位与vim
Linux的学习之路:5、粘滞位与vim
36 0
|
2月前
|
NoSQL Linux 编译器
Linux:vim调试工具gdb | 常见命令集
Linux:vim调试工具gdb | 常见命令集
68 0
|
2月前
|
存储 Linux 编译器
vim编辑器和gcc/g++编辑器的使用讲解
vim编辑器和gcc/g++编辑器的使用讲解
54 2
|
2月前
|
Shell Linux C语言
【Shell 命令集合 文本编辑器 】Linux pico 编辑器使用指南
【Shell 命令集合 文本编辑器 】Linux pico 编辑器使用指南
35 1
|
27天前
|
搜索推荐 NoSQL Linux
Linux开发工具——vim篇
Linux开发工具——vim篇
|
27天前
|
Ubuntu Linux 编译器
【Linux】4. 开发工具的使用(yum/vim)
【Linux】4. 开发工具的使用(yum/vim)
44 2
|
22天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1月前
vi编辑器替换字符串命令
vi编辑器替换字符串命令
16 1
|
3天前
|
Linux 开发工具 C语言
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
|
5天前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因