• 使用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 "$(

    命令:echo  "$(

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

    5.cat命令

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

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

    输入内容:

    Hangzhou is a beautiful city.

    Hangzhou in Zhejiang.

    命令结束:EOF

    完整格式:

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

    (2)使用cat查看内容

    命令:cat hz_cat.txt

    以上,感谢。

    2022年3月20日

  • 相关阅读:
    利用map的特性对数组进行操作
    专利的流程和费用
    const和constexpr记录
    网页设计成品DW静态网页Html5响应式css3——电影网站bootstrap制作(4页)
    分布式搜索引擎ElasticSearch-1
    浅析MySQL死锁检测
    Imu_PreIntegrate_07 Vecility bias update 零偏更新后速度预积分量对零偏的偏导
    深度学习21天 —— 卷积神经网络(CNN):识别眼睛状态 ( 第17天)
    [COLING 2018] Modeling Semantics with Gated Graph Neural Networks for KBQA 阅读笔记
    多元线性回归_梯度下降法实现【Python机器学习系列(六)】
  • 原文地址:https://blog.csdn.net/zhangbeizhen18/article/details/127948994