Linux使用sed命令替换字符串教程
要替换字符串,我们需要使用以下格式。
$ sed s/替换的目标字符串/替换后的字符串/ 文件名
在下面我们替换写为“appleorangemelon”的字符串“sample.txt”。
$ sed s/orange/ORANGE/ sample.txt
执行结果为
appleORANGEmelon
替换并输出字符串。
另外,如下所示,在cat命令后用“|”连接sed命令也能得到同样的结果。
$ cat sample.txt | sed s/apple/APPLE/
注意,sed命令仅替换字符串并输出它,但不会重写实际文件的内容
如果要将替换的内容保存在文本中,请使用重定向“>”。
sed命令使用的选项
命令选项 | 说明 |
-e | 替换为指定的脚本 |
-f 文件 | 添加指定文件中描述的脚本文件的内容 |
-r | 使用扩展正则表达式 |
sed命令的使用
替换所有行
在先前介绍的格式中,即使在一个行中存在与多个替换对象字符串匹配的字符串,也仅替换第一个匹配的字符串。
因此,要替换所有匹配的字符串,请执行以下操作:
$ sed -e s/apple/APPLE/g sample.txt
执行结果为
APPLEorangemelonAPPLE
替换行的开头与结尾
$ sed -e "s/^apple/APPLE/" sample.txt $ sed -e "s/apple\$/APPLE/" sample.txt
如果要替换多个子字符串,则可以指定多个脚本。
$ sed -e "s/apple/APPLE/" -e "s/orange/ORANGE/" sample.txt
删除行
指定“d”以删除指定的行。例如,要删除第二行就为“2d”。
$ sed -e '2d' sample.txt
此外,也可以删除多行,下面是删除第1行到第3行。
$ sed -e '1,3d' sample2.txt
相关推荐
-
Linux下redis的持久化、主从同步与哨兵详解
1.0 redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. 1|1RDB持久化 redis提供了RDB持久化的功能,在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)这个功能可以将redis在内存中的的状态保存到硬盘中,RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件
-
linux 搭建svn服务器的方法步骤
一:安装svn yum install -y subversion 二:创建仓库 1:创建仓库目录 mkdir -p /var/project/test 2:创建仓库 svnadmin create /var/project/test 创建成功后,在/var/project/test目录下如下目录: drwxr-xr-x. 2 root root 51 1月 30 13:26 conf drwxr-sr-x. 6 root root 4096 1月 30 13:26 db -r--r--r--.
-
Linux更改账户密码实例详解
更改个人账户密码 普通用户想要更改自己的个人帐户密码,只需要运行passwd命令,不用带任何其他的命令: $ passwd 示例输出: Changing password for nick (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 系统将提示我们需要先输入当前密码,如果密码正确,则会要求重新输入并确认新密码.在下
-
Linux中查看指定文件夹内各个子文件夹内的文件数量
count脚本 #!/bin/sh numOfArgs=$# if [ $numOfArgs -ne 1 ]; then echo -e "Usage: \nbash $0 dirForCount" exit -1 fi # args ROOTDIR=$1 # core part find $ROOTDIR -maxdepth 1 -type d | sort | while read dir; do count=$(find "$dir" -type f | wc
-
Linux centos下设置定时备份任务的方法步骤
实现准备 # 需要备份文件路径:/opt/apollo/logs/access_log [root@localhost opt]# cd apollo/ [root@localhost apollo]# tree . ├── logs │ └── access_log └── test.sh # 文件备份存放路径:/tmp/logs # 备份文件加上时间戳date + %Y%m%d%H%M%S 1.编写shell脚本 [root@localhost tmp]# vi /opt/apollo/te
-
Linux常见问题解决方案汇总
1.VMware下的Centos7联网并设置固定ip 1).首先右击虚拟镜像名,点击"设置" 2).打开终端,查看网络 3).使用root用户编辑此文件 4).重启网卡,查看网络 5).再编辑一下之前编辑的文件 [root@nginx ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 #IPADDRO和PREFIXO如上图,GATWAYO和DNS1只需要把IPADDRO最后改为1 IPADDRO=192.168.126.136 PREF
-
Linux加载vmlinux调试
使用gdb加载内核符号表 arm-eabi-gdb out/target/product/msm8625/obj/KERNEL_OBJ/vmlinux 在内核的.config里面要打开 DEBUG_INFO和DEBUG_VM 定位故障代码 (gdb) l * qrd7627a_add_io_devices+0x100 0xc07cd05c is in qrd7627a_add_io_devices (/home/yejialong/GH700C/kernel/arch/arm/mach-msm/
-
linux Bash脚本判别使用者的身份方法示例
经常要在bash脚本里面或者直接对脚本本身加上sudo运行命令,但是这引发了一系列的问题. 比如用sudo的时候,脚本里的~或$HOME指代用户文件夹的这个变量,到底是应该指向我真正的用户文件夹如/home/pi呢,还是指向了超级管理员的用户文件夹/root/呢? 实际上它指向了/root/文件夹,这是我们绝对不想要的.但是很多命令如安装个程序,都不得不用sudo,那怎么办? 首先要说下经验:命令行的权限执行,从表现上来看,可以分为以下5种情况: admin-manual: 普通用户手敲命令 s
-
Linux外围文件系统的定制方法
前言 一般来说,我们所说的Linux系统指的是各种基于Linux Kernel和GNU Project的操作系统发行版.为了掌握Linux操作系统的使用,了解 Linux操作系统的运作过程,理解内核与外围支撑系统的关系,加深对开源操作系统的认识,我决定造个轮子--自己定制一个Linux文件系统. 这里有两种实现方法: 直接自己实现init**\*(M1)*** 加载bios 的硬件信息-> 读取MBR –>执行Grub ->加载kernel–> 加载驱动–> init –&g
-
Linux内核宏container_of的深度剖析
1.前面说的 我在好几年前读linux 驱动代码的时候看到这个宏,百度了好久,知道怎么用了,但是对实现过程和原理还是一知半解. container_of宏 在linux内核代码里面使用次数非常非常多,对于喜欢linux编程的同学来说,了解其实现方法,对以后看内核代码,写内核驱动的帮助都非常大,当然,我不是说了解这个就可以为所欲为了,内核博大精深,先宏观再微观去学习,不积跬步何以致千里,不要想着一口就能吃成一个胖子,我这篇文章主要剖析一下这个函数的实现原理,希望对大家学习过程中有所帮助. andr
随机推荐
- Spring的连接数据库以及JDBC模板(实例讲解)
- 关于margin-left的示例代码
- 一个简单的linux命令 tail
- SqlServer中用exec处理sql字符串中含有变量的小例子
- javascript返回顶部效果(自写代码)
- PHP的命令行命令使用指南
- ThinkPHP3.2.2实现持久登录(记住我)功能的方法
- Yii框架组件和事件行为管理详解
- YII Framework框架使用YIIC快速创建YII应用之migrate用法实例详解
- jsp使用cookie存储中文示例分享
- node中socket.io的事件使用详解
- 一步步教你如何编写Shell脚本
- 用 C# Winform做出全透明的磨砂玻璃窗体效果代码
- 复习一下sql server的差异备份
- jQuery绑定事件的几种实现方式
- 详解ES6中的let命令
- 关于java.util.Random的实现原理详解
- php 如何获取文件的后缀名
- Python中scatter函数参数及用法详解
- windows下FTP匿名登录或弱口令漏洞及服务加固