shell的sed命令
sed命令用于在线编辑文本,它一次处理一行内容。
命令语法:
sed [-n/e/f/r/i] [cmd] [InFile]
参数解释:
选项与参数: -n: quiet/silent,安静模式,经过sed处理过的行才会被列出来 -e script: 将script脚本添加到要执行的命令中
-f script-file: 将script-file的内容添加到要执行的命令中,即直接运行script-file内的sed命令; -i: 直接编辑源文件 -r: redxp-extended,在脚本中使用扩展的正则表达式 操作cmd: c: copy,用新文本替换当前行中的文本 d: delete, 删除行 i: insert,在当前行之前插入文本 a: add,在当前行之后新增一行或多行 s: separate,替换一行中的部分文本,一般与正则表达式一起使用 p :列印,即将某个选择的数据列出
栗子
# sed.txt mac
winxp
linux
win7
linux
1. 替换(c)
1)替换第1行为shell
sed '1c shell' sed.txt
结果为:
shell
winxp
linux
win7
linux
2)替换1-3行为java
sed '1,3c java' sed.txt
结果为:
java
win7
linux
3)嵌入正则表达式,用 / / 包住。替换所有包含 win 的行为python
sed '/win/c python' sed.txt
结果为:
mac
python
linux
python
linux
2. 删除(d)
1)删除第2行
sed '2d' sed.txt
结果为:
mac
linux
win7
linux
2)删除最后一行($表示最后一行)
sed '$d' sed.txt
结果为:
mac
winxp
linux
win7
3)删除1-3行
sed '1,3d' sed.txt
结果为:
win7
linux
4)嵌入正则表达式,用 / / 包住。删除包含 win 的行
sed '/win/d' sed.txt
结果为:
mac
linux
linux
3. 插入(i)
1)所有的行之前插入 ##
sed 'i##' sed.txt
结果为:
##
mac
##
winxp
##
linux
##
win7
##
linux
2)1-3行之前插入 0000
sed '1,3i0000' sed.txt
结果为:
mac winxp linux
win7
linux
3)嵌入正则表达式,含有 win 的行之前插入****
sed '/win/i*****' sed.txt
结果为:
mac
*****
winxp
linux
*****
win7
linux
4. 新增(a),跟插入类似,只不过这是在选定行之后。
5. 替换(s)
1) 替换 问本中 0 为 9
sed 's/0/9/' sed.txt
结果为:
mac
winxp
linux
win7
linux
你会发现只替换了每行的第一个
要把所有的都替换,可以添加参数 g
sed 's/0/9/g' sed.txt
结果为:
mac
winxp
linux
win7
linux
6. 【 -n 】,一般与 p 联合使用,增加、删除、替换行的命令不需要 -n 选项
1)列出第2行数据
sed -n '2p' sed.txt
结果为:
winxp
7. 【 -i 】
1)把源文件 sed.txt 中的所有 0 替换为 9
sed -i 's/0/9/g' sed.txt
命令 cat sed.txt 打开 sed.txt
结果为:
mac
winxp
linux
win7
linux
shell的sed命令的更多相关文章
- [shell基础]——sed命令
关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...
- Shell之sed命令
sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合: 1.编辑相对交互文本编辑器而言太大的文件: 2.编辑命令太复杂,在交互式文本编辑器中难以输入的情况: ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
- Shell学习:sed命令
http://blog.sina.com.cn/s/blog_a56ef5490101cn58.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行 ...
- 【shell】sed命令
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- Linux Shell编程 sed命令
概述 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器,体积小.所以,它可以对从如管道这样的标准输入中接收的数据进行编辑. sed 主要是用来将数据进行选取.替换 ...
- shell脚本——sed命令
sed 命令 作为行编辑器,对文件进行编辑(以行为单位进行编辑) sed编辑文件,却不改变原文件 sed工作原理: 指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹 ...
- Makefile Shell 脚本;sed命令
1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \ //-d 判 ...
- shell中sed命令
sed -i '/cd ${LDIR_DEST}\/webextend\/pc && ln -s \/hard\/www_winclient\/bboxpc.exe ./a\ \tcd ...
随机推荐
- JavaScript——历史与简介
上一篇博文距离现在已经四个月了,一直想写些什么无奈工作比较忙碌.我的恩师老王在毕业聚餐那天带着一声酒气告诉我一定要把博客坚持写下去,所以今天下决心要开始这个新的篇章. 之所以想要从头写一个关于Java ...
- APP测试基本流程以及APP测试要点
APP测试流程梳理 APP测试要点梳理 链接:http://pan.baidu.com/s/1gfaEZ1x 密码:07yt 1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开 ...
- VBA_把相同行一列追加数据到一行
Sub Test() Dim rowsNum, i, j, equalRowsNum As Integer rowsNum = ActiveSheet.UsedRange.Rows.Count '获得 ...
- nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现
nginx解析漏洞,配置不当,目录遍历漏洞复现 1.Ubuntu14.04安装nginx-php5-fpm 安装了nginx,需要安装以下依赖 sudo apt-get install libpcre ...
- sql server sql查询数据库的表,字段,主键,自增,字段类型等信息
1.查询数据表的属性(名称.说明.是否主键.数据类型.是否自增) SELECT t1.name columnName,case when t4.id is null then 'false' else ...
- tomcat 在liunx中shutdown后进程仍然存在的两种实用解决办法
方法一: 查找tomcat进程并kill ps -elf | grep ${ctompath} | grep -v grep | awk '{print $4}' | xargs kill -9 此处 ...
- linux 开机报错,error grub_efi_find_mmap_size not find
开机报错,差点以为要重装系统了 搜到了官方的重建引导的教程 修复了错误 https://wiki.manjaro.org/index.php/Restore_the_GRUB_Bootloader#F ...
- oracle存储过程 关于update的动态SQL-工作心得
本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 12 月 20 日 原地址:https://niaobulashi.com/archives/oracle-procedure ...
- 戴尔win10重新安装win7系统
戴尔v5468电脑win10重装回win7系统 首先是公司需要用到ie8来执行公司的项目维护,都是很早之前的项目了,因为是对接政府相关的业务,不怎么有把握对项目进行稳定更新,所以我就为这个ie8操碎了 ...
- Swagger本地环境配置
一.技术背景 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远.而前后端的唯一联系便是 API 接口,与此同 ...