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