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

记录: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日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值