Linux系统中有时候我们需要替换某个很长的字符串该使用什么命令呢?下面由学习啦小编为大家整理了Linux系统字符串替换命令详细说明,希望对大家有帮助!

Linux系统字符串替换命令详细说明

Linux系统字符串替换的方法一、通过vi编辑器来替换

vi/vim 中可以使用 :s 命令来替换字符串。

:s/well/good/ 替换当前行第一个 well 为 good

:s/well/good/g 替换当前行所有 well 为 good

:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good

:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good

n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good

:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符

:s#well/#good/# 替换当前行第一个 well/ 为 good/

:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin

Linux系统字符串替换的方法二、直接替换文件中的字符串

此法不用打开文件即可替换字符串,而且可以批量替换多个文件。

1.perl命令替换,参数含义如下:

-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定

-F 指定-a的分隔符,可以使用正则表达式

-e 执行指定的脚本。

-i 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。

-l 对输入内容自动chomp,对输出内容自动添加换行

-n 自动循环,相当于 while(<>) { 脚本; }

-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }

用法示例:

perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c

将所有C程序中的foo替换成bar,旧文件备份成.bak

perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak

将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”

perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2

将每个文件中出现的数值都加一

Linux系统字符串替换的方法三、sed命令下批量替换文件内容

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名

-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名

s表示替换,d表示删除

示例:sed -i "s/shan/hua/g" lishan.txt

把当前目录下lishan.txt里的shan都替换为hua

补充:sed命令的其他用法如下

1、删除行首空格

sed 's/^[ ]*//g' filename

sed 's/^ *//g' filename

sed 's/^[[:space:]]*//g' filename

2、行后和行前添加新行

行后:sed 's/pattern/&\n/g' filename

行前:sed 's/pattern/\n&/g' filename

&代表pattern

3、使用变量替换(使用双引号)

sed -e "s/$var1/$var2/g" filename

4、在第一行前插入文本

sed -i '1 i\插入字符串' filename

5、在最后一行插入

sed -i '$ a\插入字符串' filename

6、在匹配行前插入

sed -i '/pattern/ i "插入字符串"' filename

7、在匹配行后插入

sed -i '/pattern/ a "插入字符串"' filename

8、删除文本中空行和空格组成的行以及#号注释的行

grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d

linux字符串替换命令,Linux系统字符串替换命令详细说明相关推荐

  1. linux之我常用的系统重要文件备份命令

    pgrep pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令.不过,这个命令主要是用来列举进程ID的 想要找到 SSH 服务器的 PID > pgr ...

  2. mac os touch命令_MacOS系统终端常用命令大全

    MacOS系统终端是使用mac电脑的小伙伴需要或多或少了解的一个应用.熟悉并掌握一些基本的常用命令可以帮助我们快速的解决一些日常问题,提高工作效率,下面让小编带大家了解一下吧!MacOS系统终端常用命 ...

  3. 关闭计算机防火墙命令,win10系统关闭防火墙命令执行的设置方案

    win10系统使用久了,好多网友反馈说关于对win10系统关闭防火墙命令执行设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统关闭防火墙命令执行进行设置,有什么好的办法去设置wi ...

  4. win7 java不是内部或外部命令_Win7系统输入javac命令提示“javac不是内部或外部命令”怎么办...

    最近有win7系统到本站反映这样一个问题,就是配置好环境变量之后,在命令提示框中输入javac之后,提示"javac不是内部或外部命令",也不是可运行的程序或批处理文件,怎么回事呢 ...

  5. linux apt 命令,Ubuntu系统中apt命令的用法汇总

    apt是Advanced Packaging Tool的简称,是一款安装包管理工具.那么要如何使用apt命令来管理安装包呢?apt命令有哪些参数呢?下面小编就给大家详细介绍下Ubuntu中apt命令的 ...

  6. Linux系统管理(9)——系统状态监控命令top使用详解

    一个服务器运维管理员,每天早上到公司第一件事 就是端着一杯咖啡 连上服务器,输入top命令 看着满屏幕系统运行参数状态,一股朕日理万机的感觉油然而生 [root@localhost ~]#top [参 ...

  7. centos的mysql命令,Centos系统mysql相关命令

    Centos系统mysql 忘记root用户的密码: 第一步:(停掉正在运行的mysql) [root@CentOs5 ~]# service mysqld stop Stopping MySQL: ...

  8. Linux 的常用系统及网络命令

    (转载自http://blog.chinaunix.net/uid-8031155-id-2518955.html) Linux下常用命令收集整理 Linux 的常用网络命令 计算机网络的主要优点是能 ...

  9. linux中检测用户信息的命令是,Linux中系统状态检测命令

    1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...

  10. linux目录命令改目录名,Linux命令详解——文件和目录常用命令-linux修改文件名...

    文件和目录常用命令 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 &g ...

最新文章

  1. 小型职工工作量c语言,计算机c语言职工工作量统计系统.doc
  2. 综述|基于深度学习方式的场景分类算法
  3. php汉字的截取,php汉字截取
  4. java元婴期(18)----java进阶(spring(2)----DI(依赖注入)基于注解的IOC与DI配置properties)
  5. go strconv
  6. 聊一聊mongodb中的 explain 和 hint
  7. [JavaWeb-XML]XML组成部分
  8. 双11小米手机、AIoT销售成绩公布,雷军笑了
  9. Error: Cannot find module ‘node-sass‘---Node-sass下载
  10. RabbitMQ的工作模式Routing 路由,test测试代
  11. php对象数字属性,PHP获取对象的纯数字属性
  12. java贪心算法几个经典例子_经典算法思想5——贪心(greedy algorithm)
  13. Recover Binary Search Tree -- LeetCode
  14. 深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)
  15. 计算机网络教室管理制度
  16. PMP 风险应对措施 :规避和减轻的区别
  17. 全国短信息中心号码一览
  18. getUserProfile:fail can only be invoked by user TAP gesture
  19. 公司邮箱怎么注册?公司企业邮箱怎么登录?
  20. nextTick的理解和作用

热门文章

  1. nachos 5.0j(java版)学习笔记一:环境搭建
  2. 实变函数与计算机有关系吗,实变函数论文.doc
  3. 微信内置浏览器直接下载APK的解决方法
  4. MODSCAN32的应用
  5. What are FeliCa and PaSoRi?
  6. 第三方支付接口游戏商户池轮巡、支付宝商户池、微信商户池、游戏商户池怎么申请?
  7. c 转时间戳php,php日期转时间戳,指定日期转换成时间戳 筋斗云网络
  8. 打算开源一个低代码平台,第二天,包含【工作流,业务流,财务,APQC】。技术站 React,typescript,java,mysql
  9. linux _max_path,[apue] Linux / Windows 系统上只能建立不超过 PATH_MAX / MAX_PATH 长度的路径吗?...
  10. 大数据技术原理与应用学习笔记(五)