`
dawning126
  • 浏览: 46244 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux 替换文件内容 vi

阅读更多
find -name 要替换文件内容的文件名 | xargs perl -pi -e 's|被替换的字串|替换的字串|g'

比如要把当前的文件myctxt 中的mysex替换为sex,那么就这么写,如下

find -name myc.txt | xargs perl -pi -e 's|mysex|sex|g'

用VI 就是:

在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc
全文替换时,还可以输入:1,$s/old/new/g。 其中1,$表示从第一行到文本结束。

vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。


:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/


* ************************************


1.         :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
            :s/vivian/sky/g 替换当前行所有 vivian 为 sky

2.         :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
            :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
                     (n 为数字,若 n 为 .,表示从当前行开始到最后一行)


3.         :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
            :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

4.         可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
            :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

5.         删除文本中的^M
            问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用 时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
· 使用命令:cat filename1 | tr -d “^V^M” > newfile;
· 使用命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
· 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
· :%s/^M$//g
             如果上述方法无用,则正确的解决办法是:
· tr -d   "\r"        < src   >dest
· tr -d   "\015" <src    >dest
· strings              A>B

6.        其它
          利用 :s 命令可以实现字符串的替换。具体的用法包括:
          :s/str1/str2/       用字符串 str2 替换行中首次出现的字符串 str1
          :s/str1/str2/g      用字符串 str2 替换行中所有出现的字符串 str1
          :.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
          :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
          :g/str1/s//str2/g   功能同上
          从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
分享到:
评论

相关推荐

    在linux文件中查找并替换

    - **全局替换**:如果想要替换文件中的所有匹配项,可以在`s`命令后加上`g`标志: ``` sed 's/old/new/g' file ``` - **指定范围替换**:还可以指定替换的行范围,例如替换第1行到第10行之间的`old`为`new`: `...

    Linux文件系统管理命令及Vi编辑器的应用

    【Linux 文件系统管理命令】 在Linux操作系统中,文件系统管理是日常运维的重要组成...通过这些命令和操作,用户可以高效地管理和编辑Linux系统中的文件与目录,同时掌握vi编辑器的基本使用技巧,提升Linux运维能力。

    linux实验报告vi编辑器的使用.pdf

    Vi编辑器是Linux系统中最基本的文本编辑器,系统管理员的重要工作就是修改与设定某些重要软件的配置文件,因此至少得要学会一种以上的命令界面文本编辑器。Vi编辑器可以用不同颜色显示文字内容,还能够进行诸如shell...

    Linux下如何使用vi

    【Linux下如何使用vi】 在Linux环境中,vi(Visual Editor)是一个非常强大的文本编辑器,也是许多系统管理员和程序员的首选工具。对于初学者来说,理解vi的基本操作至关重要。vi编辑器主要有三种工作模式:命令...

    linux基本命令以及linux下vi命令大全

    本文将深入探讨Linux的基本命令以及强大的文本编辑器vi(Visual Editor)的使用方法。 首先,让我们了解一些基础的Linux命令。在Linux环境中,命令行是主要的操作界面,通过输入命令来执行各种任务。以下是一些常见...

    Linux应用技术:Linux常用命令与VI文件编辑器.docx

    ### Linux应用技术:Linux常用命令与VI文件编辑器 #### 实验目的 本实验旨在让学员熟练掌握Linux操作系统的基本操作,包括常用的文件和目录管理命令以及如何使用VI编辑器进行文本文件的创建与编辑。 #### 实验内容...

    vi命令全 vi 常用命令 unix vi 常用命令 vi 替换命令 unix vi 命令 vi 命令模式

    这些命令可以让用户快速地替换文件中的文字或字符串。 Vi 编辑器是一个功能强大、灵活、易于使用的编辑器。它可以满足用户在 UNIX 操作系统中编辑文件的需求。 1. Vi 编辑器的基本模式 Vi 编辑器有两种基本模式:...

    linux 常用命令 vi命令

    提供的PDF文件,如"练成Linux系统高手教程.pdf"、"linux vi使用.pdf"、"Linux实用培训教程合并版.pdf"、"linux_命令大全.pdf"都包含了更深入的教程和实践指导,是进一步提升Linux技能的好资源。 在实际使用中,不断...

    Linux vi命令用法

    如果指定的文件存在,vi会加载其内容;若不存在,则会创建新文件。在vi中,行前显示波浪符号代表该行为空行。 vi的工作模式分为指令模式和输入模式。当你首次打开文件时,vi处于指令模式,此时输入的任何字符都被...

    linux系统命令及VI用法

    - `:%s/pattern/replacement/g`: 替换文件中所有的匹配模式。 6. **更多高级特性** - `:set nu`: 显示行号。 - `:set nonu`: 取消显示行号。 - `:set ic`: 忽略大小写进行搜索。 - `:set noic`: 不忽略大小写...

    linux Vi操作测试内容

    Linux中的`vi`编辑器是一款强大的文本编辑工具...这些操作展示了`vi`编辑器的基本操作,包括文件管理、文本查找与替换、复制粘贴、撤销操作以及保存与退出等。熟练掌握这些技巧,将大大提高你在Linux环境下的工作效率。

    Linux常用命令-Vi-简单Shell编程.zip_linux常用命令_vi

    通过学习和熟练掌握上述内容,用户将能够更加高效地在Linux环境中工作,不论是日常的文件管理还是编写自动化脚本,都能得心应手。嵌入式系统课程设计资料中的"Linux常用命令-Vi-简单Shell编程.pdf"会进一步提供详细...

    windows的BAT或者linux的VI下批量更改替换文件名的脚本

    windows的BAT或者linux的VI下批量更改替换文件名的脚本.昨天我整理文档,里面有一大堆后缀名相同的文件,如: 001.ppt、002.ppt和003.ppt这样命名的,现在要把它们修改成 课件_001.ppt、课件_002.ppt和课件_003.ppt...

    linux 系统 中 vi指令大全

    Linux中的VI(Visual Editor)是经典的文本编辑器,它提供了丰富的功能和强大的操作命令,适合在命令行界面中编辑配置文件或编写代码。本篇文章将详细介绍Linux系统中VI指令的使用,帮助用户熟练掌握这个不可或缺的...

    vi.rar_linux_linux VI_linux 命令_vi_vi linux

    在Linux操作系统中,`vi`(Visual Editor)是一款强大的文本编辑器,它是Vim(Vi IMproved)的前身。作为一款命令行界面下的编辑器,`vi`在系统管理、脚本编写等方面有着广泛的应用。了解并熟练掌握`vi`的基本操作和...

    linux所有命令+vi编辑器+文件编辑器

    本资料包聚焦于Linux中的三个核心要素:所有命令、vi编辑器以及文件编辑器的使用。以下是对这些主题的详细阐述: 一、Linux所有命令 Linux命令行提供了丰富的指令集,用于执行各种任务,如文件管理、系统控制、网络...

    Linux实习三报告 VI编辑器及shell命令

    2. **编辑与保存**:使用VI编辑文本文件,然后用`wq`保存并退出,使用`cat`命令验证内容。 3. **编写C程序**:在VI中编写C代码,如“Hello World!”程序,然后用`g++`编译并执行。如果遇到错误,比如由于文件扩展名...

    Linux vi 命名操作文档

    - `:g/p1/s//p2/g`:替换文件中所有p1为p2。 7. **选项设置**: - `all`:查看所有选项状态。 - `term`:设置终端类型。 - `ignorance`:搜索时忽略大小写。 - `list`:显示制表符和行尾标志。 - `number`:...

    linux操作系统实验vi编辑器的使用.pdf

    - 使用`r`或`R`替换文件中的字符或字符串。 **7. 文件内容查找** - 在`exam22.txt`文件中查找关键字`linux`。 ```bash /linux ``` **8. 文件内容的分割与保存** - 将`exam22.txt`文件中的第5行至第20行内容...

Global site tag (gtag.js) - Google Analytics