使用vi、vim、sed、echo、cat操作文件

news2024/11/24 5:42:02

记录:324

场景:在CentOS 7.9操作系统上,使用vi编辑器、vim编辑器、sed编辑器操作文件读、写、删、替换等操作;使用echo命令和cat命令将内容输出文件并查看内容。

版本:

操作系统:CentOS 7.9

1.vi编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器。

vi采用的是交互式文本编辑模式,使用键盘命令交互,实现编辑、插入、删除、替换文本内容。

1.1vi编辑器的几种模式

vi编辑器一般包括:命令模式、工作模式、末行模式。

进入命令模式:vi hz_vi.txt,就会进入vi编辑器,就是命令模式。

进入工作模式:点击键盘i字母键,从命令模式切换到可编辑的工作模式。

退出工作模式到命令模式:点击键盘Esc键:从可编辑的工作模式切换到命令模式。

从命令模式切换到末行模式:Shift键+冒号键,在末行出现“:”时就进入了。

从末行模式退vi编辑器:输入wq就退出vi编辑器。对于系统文件输入wq:退出vi编辑器

1.2命令模式

(1)复制操作

yy:复制一行内容。

(2)粘贴操作

小写p:把复制内容放在光标之后的一行。

大写P:把复制内容放在光标之前的一行。

(3)删除操作

字母x键或者Delete键:删除光标指定的字符串。

dd:删除光标所在行的内容。

数字和dd:删除从光标所在行开始之后的指定数字的行数内容。

d^:把光标所在行中光标指向的字符串之前的内容全部删掉。

d$:把光标所在行中光标指向的字符串之后的内容全部删掉。

1.3末行模式

:w,保存内容。

:q,退出vi。

:q!,强制退出vi。

:/输入查找字符串:可以查找文件中内容,在输入:n,可以逐步查看下一个。

1.4应用

(1)创建文件和进入文件

命令:vi hz_vi.txt

解析:如果文件不存在,则会创建文件。文件存在,则直接进入。

(2)按i键

按i键,进入编辑状态。

输入内容:

Hangzhou is a beautiful city.

(3)按Esc键

按按Esc键,进入命令模式。

(4)按Shift键+冒号键

按Shift键+冒号键,进入末行编辑状态。

(5)输入wq

按w键和q键,保存并退出vi编辑器。

(6)使用cat命令查看内容

命令:cat hz_vi.txt

2.vim编辑器

vim采用的是交互式文本编辑模式,使用键盘命令交互,实现编辑、插入、删除、替换文本内容。

vim是vi的升级版,两者使用方式类似。

vi在系统默认已经安装,vim一般默认不自带,需安装。

安装命令:yum install -y vim

2.1vim编辑器的几种模式

vim编辑器一般包括:命令模式、工作模式、末行模式。

进入命令模式:vim hz_vim.txt,就会进入vim编辑器,就是命令模式。

进入工作模式:点击键盘i字母键,从命令模式切换到可编辑的工作模式。

退出工作模式到命令模式:点击键盘Esc键:从可编辑的工作模式切换到命令模式。

从命令模式切换到末行模式:Shift键+冒号键,在末行出现“:”时就进入了。

从末行模式退vim编辑器:输入wq就退出vim编辑器。对于系统文件输入wq:退出vim编辑器

2.2命令模式

(1)复制操作

yy:复制一行内容。

(2)粘贴操作

小写p:把复制内容放在光标之后的一行。

大写P:把复制内容放在光标之前的一行。

(3)删除操作

字母x键或者Delete键:删除光标指定的字符串。

dd:删除光标所在行的内容。

数字和dd:删除从光标所在行开始之后的指定数字的行数内容。

d^:把光标所在行中光标指向的字符串之前的内容全部删掉。

d$:把光标所在行中光标指向的字符串之后的内容全部删掉。

2.3末行模式

:w,保存内容。

:q,退出vim。

:q!,强制退出vim。

:/输入查找字符串:可以查找文件中内容,在输入:n,可以逐步查看下一个。

2.4应用

(1)创建文件和进入文件

命令:vim hz_vim.txt

解析:如果文件不存在,则会创建文件。文件存在,则直接进入。

(2)按i键

按i键,进入编辑状态。

输入内容:

Hangzhou is a beautiful city.

(3)按Esc键

按按Esc键,进入命令模式。

(4)按Shift键+冒号键

按Shift键+冒号键,进入末行编辑状态。

(5)输入wq

按w键和q键,保存并退出vim编辑器。

(6)使用cat命令查看内容

命令:cat hz_vim.txt

3.sed编辑器

sed,stream editor,是一种流文件编辑器。采用流编辑模式,最明显的特点是在处理数据之前,需要预先提供一组规则,sed编辑器会按照此规则来编辑数据。

创建文件命令:touch hz_sed.txt

3.1 sed -i(编辑文档)

(1)在空白文件中插入一条数据

sed编辑器在空白文件中插入一条数据,可以借助echo、cat等命令。

命令:test -s hz_sed.txt && sed -i '1a Hangzhou is a city for the Asian Games.' hz_sed.txt //echo 'Hangzhou is a city for the Asian Games.' >> hz_sed.txt

解析:test -s,判断文件是否文空白文件;sed -i,对文件编辑和修改;1a,代表在第一行后边添加内容;echo,将文件输出到指定文件。

(2)在指定某一行后面添加内容

命令:sed -i '1a Hangzhou is a beautiful city.' hz_sed.txt

解析:1a,1是代表行号,a代表添加。

(3)在指定某一行前面添加内容

命令:sed -i '2i Hangzhou in Zhejiang.' hz_sed.txt

解析:2i,2是代表行号,i代表添加。

(4)在指定字符串后面添加一行

命令:sed -i '/Asian/a China is great country.' hz_sed.txt

解析:在指定字符串后面添加一行内容。

(5)在指定字符串前面添加一行

命令:sed -i '/Asian/i China in the East.' hz_sed.txt

解析:在指定字符串前面添加一行内容。

(6)替换匹配的字符串

命令:sed -i 's/Hangzhou/Beijing/' hz_sed.txt

解析:每行的第一个Hangzhou,替换为Beijing。

命令:sed -i 's/Hangzhou/Beijing/g' hz_sed.txt

解析:对全局匹配上的字符串全部替换。使用|和/都行。

命令:sed -i '2s/Hangzhou/Beijing/g' hz_sed.txt

解析:对指定行中匹配字符串替换为新字符串。2s,第2行进行匹配。

(7)在末行后添加一行

命令:sed -i '$a Xihu in Hangzhou' hz_sed.txt

解析:删除匹配到Zhejiang字符串所在行。

(8)删除匹配到字符串的行

命令:sed -i '/Zhejiang/d' hz_sed.txt

解析:删除匹配到Zhejiang字符串所在行。

(9)删除指定行号的内容

命令:sed -i 2d hz_sed.txt

解析:解析删除指定行号的内容,本例删除第2行内容。

3.2 sed -n(查看文档)

(1)打印文档中指定行号内容

命令:sed -n 2p hz_sed.txt

解析:打印第2行到控制台。

(2)打印文档中指定行号范围内容

命令:sed -n 1,3p hz_sed.txt

解析:打印第1行到3行到控制台。

(3)打印文档中指定行号到最后一行的内容

命令:sed -n '3,$p' hz_sed.txt

解析:打印第3行到末行内容。

(4)打印全部内容并去除空行

命令:sed '/^$/d' hz_sed.txt

解析:打印全部内容并去除空行。

4.echo命令

(1)使用echo把内容输出到文件

命令:echo 'Hangzhou is a beautiful city.' >> hz_echo.txt

命令:echo 'Hangzhou in Zhejiang.' >> hz_echo.txt

解析:使用echo会把内容输出到指定文件,如果文件不存在,则会创建文件。使用echo输出内容到文件,默认是在文件内容后面追加的方式添加容,每次添加都是另起一行添加新内容。

(2)打印文件内容

命令:echo -e "$(<hz_cat.txt)"

命令:echo  "$(<hz_cat.txt)"

解析:把文件内容打印到控制台。

5.cat命令

(1)使用cat把内容输出到文件

命令:cat >>/home/apps/data/hz_cat.txt<<EOF

输入内容:

Hangzhou is a beautiful city.

Hangzhou in Zhejiang.

命令结束:EOF

完整格式:

解析:使用cat输出内容到文件,如果文件不存在,则会创建文件。默认每次都会覆盖文件中的内容,因此在输出到已经有内容的的文件时,需特别注意确认好覆盖的内容对业务的影响。

(2)使用cat查看内容

命令:cat hz_cat.txt

以上,感谢。

2022年3月20日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同花顺_代码解析_技术指标_R

本文通过对同花顺中现成代码进行解析&#xff0c;用以了解同花顺相关策略设计的思想 目录 RAD RADER RCCD ROC ROCFS RSI RSIFS RAD 威力雷达 大盘指标。 RAD的判断基准法与传统指标相似: 白线上穿黄线为金叉,示强势,为买入建仓机会参考&#xff1b; 白线下穿黄线为…

红黑树的插入(C++实现)

1. 红黑树 1.1 概念 红黑树是一种二叉搜索树&#xff0c;它是AVL树的优化版本。红黑树是每个节点都带有颜色属性的二叉搜索树&#xff0c;颜色为红色或黑色。 之所以选择“红色”是因为这是作者在帕罗奥多研究中心公司Xerox PARC工作时用彩色雷射列印机可以产生的最好看的颜色…

Java学习之包访问修饰符

基本介绍 java 提供四种访问控制修饰符号&#xff0c;用于控制方法和属性(成员变量)的访问权限&#xff08;范围&#xff09; 公开级别:用 public 修饰,对外公开受保护级别:用 protected 修饰,对子类和同一个包中的类公开默认级别:没有修饰符号,向同一个包的类公开.私有级别:…

采用sFlow工具实现流量监控--实验

采用sFlow工具实现流量监控--实验采用sFlow工具实现流量监控---实验学习目标学习内容实验原理实验拓扑实验仿真启动sFlow-rt以及floodlight控制器创建拓扑部署sFlow agent步骤1.步骤2.步骤3步骤4步骤5.步骤6.总结申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&…

C++模拟OpenGL库——图形学状态机接口封装(一):用状态模式重构部分代码及接口定义

目录 什么是状态机&#xff1f; 基于状态机模式进行重构 Canvas.h源码 什么是状态机&#xff1f; 回顾之前两部分内容&#xff0c;我们做了&#xff1a; 绘制点绘制线&#xff08;Brensenham&#xff09;绘制三角形&#xff08;拆分法&#xff09;图片操作&#xff08;stb…

RabbitMQ------延迟队列(整合SpringBoot以及使用延迟插件实现真正延时)(七)

RabbitMQ------延迟队列&#xff08;七&#xff09; 延迟队列 延迟队列&#xff0c;内部是有序的&#xff0c;特点&#xff1a;延时属性。 简单讲&#xff1a;延时队列是用来存放需要在指定时间被处理的元素队列。 是基于死信队列的消息过期场景。 适用场景 1.订单在十分钟…

Linux(centos7)安装MySQL5.7

Linux 安装MySQL5.7 数据库 所有的安装方式是基于手动式的安装&#xff0c;也就是整体的下载然后配置 rpm与yum之间的关系 rpm 是Linux 免除编译安装带来的安装方式&#xff0c;而yum 是在rpm 上面的进一步的优化&#xff0c;换句话说yum 既包含了rpm 的简单安装&#xff0c…

百度地图自定义覆盖物(html)格式

<style type"text/css"> body, html{ width: 100%; height: 100%; overflow: hidden; margin: 0; font-family: "微软雅黑"; display: flex; justify-content: space-between; } #cont…

使用html+css实现一个静态页面(厦门旅游网站制作6个页面) 旅游网页设计制作 HTML5期末考核大作业,网站——美丽家乡。 学生旅行 游玩 主题住宿网页

&#x1f468;‍&#x1f393;静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计&#x1f469;‍&#x1f393;&#xff0c;一般的网页作业需要融入以下知识点&#xff1a;div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

FL Studio2023水果完整中文版音乐制作软件

FL Studio2023水果中文版是一款由 Image Line 公司研发几近完美的虚拟音乐工作站,同时也是知名的音乐制作软件。它让你的计算机就像是全功能的录音室&#xff0c;漂亮的大混音盘&#xff0c;先进的创作工具&#xff0c;让你的音乐突破想象力的限制。它可以播放由你指定或加入的…

IP包头分析

数据来源 IP包头长度 ip包头的长度在20-60个字节间&#xff0c;一般是20字节&#xff08;固定部分&#xff09;&#xff0c;可选项最大是40个字节&#xff08;比较少用&#xff09;。 第一行 版本 就是指出IP数据包是什么版本&#xff1b;常见的版本就是0100 IPV4和 0110 IPV6…

机器学习中基本符号表示和常用术语

目录一. 基本符号表示二. 常用术语1. 精准率计算&#xff08;precision&#xff09;2.召回率计算&#xff08;recall&#xff09;3.准确率的计算&#xff08;accuracy&#xff09;4.F1 Score5. G分数6.一. 基本符号表示 TP &#xff08;true positive&#xff09;&#xff1a;预…

【Python】基础语法(安装,常变量,类型,注释,运算符)

目录python环境搭建安装Python安装pycharmpython基础语法常量和表达式变量和数据类型变量数据类型注释输入输出运算符算术运算符关系运算符逻辑运算符赋值运算符xdm,最近更新一些学习Python基础知识的内容,感谢支持!python环境搭建 俗话说工欲善其事必先利其器,要想学习Python开…

新知实验室TRTC初体验

小记 一次偶然的邂逅,让我知道了TRTC实时音视频这个神奇的东西,于是便开始研究起来这个鬼东西,本以为是一个很简单的东西,调用一下SDK就完事了 , 谁知道它的文档并不是很齐全,这一点还需要多多努力啊!!! 正文 实时音视频&#xff08;TRTC&#xff09; 是腾讯云提供的一套低…

现代对称密码

乘积密码 因为语言特性&#xff0c;用代替和置换是不安全的&#xff0c;可以考虑用多次的加密增强密码强度。多次加密想要提高密码强度&#xff0c;要求多次加密不能成为一个群&#xff0c;那么加密就可以被重复并且组合复杂度会增加。 分组密码 分组密码就是把明文分组后进…

Linux进阶-Shell编程与环境变量

目录 定义变量&#xff1a; 使用变量&#xff1a; 将命令的结果赋值给变量&#xff1a; 删除变量&#xff1a;unset 退出当前进程&#xff1a;exit 读取从键盘输入的数据 &#xff1a;read 对整数进行数字运算&#xff1a;(()) 逻辑与或&#xff1a; 检测某个条件是否成…

【Java八股文总结】之MySQL数据库

文章目录数据库一、基本概念二、MySQL数据库2.1 MySQL基础1、MySQL数据库的优点&#xff1f;2、MySQL支持的数据类型有&#xff1f;Q&#xff1a;varchar 和 char 的区别&#xff1f;Q&#xff1a;blob 和 text 的区别&#xff1f;Q&#xff1a;datetime 和 timestamp 的区别&a…

DI依赖注入-P8,P9,P10,P11

1.构造器注入 之前写过了~~~~ 2.Set方式注入【重点】 3.拓展方式注入 2.Set方式注入【重点】 【环境搭建】 1.复杂类型 2.真实测试对象 四个文件 Student实体类的创建&#xff1a; 主要是依据官方文档来建立。那个Address也是为了测试不同的类型&#xff0c;而创建的引…

攻防世界misc2-1

misc2-1 题目描述&#xff1a;无 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/87094620 打开图片&#xff0c;发现无法显示。 使用winhex打开&#xff0c;从其中一段看出这是逆序图片。 使用python脚本将其正序排列。 脚本源码&#xff1a; f1open(‘…

5G无线技术基础自学系列 | SA及NSA组网架构

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 3GPP为新空中接口定义了两种部署配置&a…