免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1853 | 回复: 5
打印 上一主题 下一主题

sed用法个人笔记(高手忽略) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-10 21:17 |只看该作者 |倒序浏览
1.Introduction
        使用sed时要记住一个重要事实,无论命令是什么,sed
    并不与初始化文件打交道,他操作的知识一个拷贝,然后
    所有的改动如果没有重定向到一个文件,将输出屏幕。
  
2.sed怎么样读取数据
        sed文件的一个文本行或从标准输入的几种格式中读取数据,
        将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一个
        命令,并使用这些命令查找模式或定位行号编辑它。重复
        此过程直到命令结束。

2.调用sed的三种方式。
        1.在命令行直接输入
        2.在脚本中编写sed,然后调用
        3.将sed插入脚本,并使用sed脚本执行
       
3.以下举例都以 quote.txt 为例

The honeysukle band played all night long for only $90.
It was an evening of splendid music and company.
Too bad the disco floor fell through ata 23:10.
The local nurse Miss P.Neave was in attendance.



        1.打印  p
                举例1:打印1到3行。
                                        sed -n '1,3p' quote.txt
                举例2: 打印匹配单词Neave
                                        sed -n '/Neave/p' quote.txt
                举例3:打印匹配单词the并在第4行
                                        sed -n '4,/The/p' quote.txt
                举例4:匹配任意字母,并以ing结尾,
                                        sed -n '/.*ing/p' quote.txt
                举例5:如果只打印行号及匹配行,必须使用两个
                      sed命令,并使用e选项。第一个命令打印模式
                          匹配行,第二个使用=选项打印行号,
                          格式为sed -n -e /pattern/p -e /pattern/=。
                                        sed -n -e/'Neave/p' -e '/Neave/=' quote.txt
                                       
                                       
        2.替换文本 s 格式 sed 's/old/new/[g/p/w/n]' 文件名
                                       
                                       
                举例1:替换night为NIGHT
                                        sed 's/night/NIGHT/' quote.txt
                                       
                举例2:替换splendid为SPLENDID,并将替换行写入yanhai.txt
                                        sed 's/splendid/SPLENDID/w yanhai.txt' quote.txt
                                       
                举例3:[在new部分不写任何东西,保留空白,但仍需要用斜线括起来,
                          表示删除].
                          删除$符号($需要转义)
                                        sed 's/\$//'
                                       
                举例4:将替换的结果写入一个文件(yanhai.txt) 这里用到了/w
                                        sed 's/splendid/SPLENDID/w yanhai.txt' quote.txt
                          注意:要将文件名括在sed的单引号里
       
                举例5:替换修改字符串(这里个人的感觉更像是插入字符串)
                          格式:sed 's/old/new空格&' 文件名 [将new插在old前]
                                        sed 's/old/&空格new' 文件名 [将new插在old后]
                          将"Hello"插入在nurse前
                                        sed 's/nurse/"Hello" &' quote.txt
       
       
        3.匹配后退出 p 格式 address q
               
                举例1:查询首次出现模式,然后退出(需要将q放在sed'语句末尾)
                                        sed '/.a.*/q' quote.txt

评分

参与人数 1可用积分 +2 收起 理由
liying_gg + 2 以资鼓励

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-12-10 21:43 |只看该作者
学习一下
另,下面的说法不完全正确,因为现在的gnu新一点的版本,都有i参数,可以直接修改原文件
1.Introduction
        使用sed时要记住一个重要事实,无论命令是什么,sed
    并不与初始化文件打交道,他操作的知识一个拷贝,然后
    所有的改动如果没有重定向到一个文件,将输出屏幕。

论坛徽章:
0
3 [报告]
发表于 2009-12-10 22:04 |只看该作者

回复 #1 yhyhyh11111 的帖子

记笔记是个好习惯,

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2009-12-10 23:28 |只看该作者
“sed并不与初始化文件打交道”这句还行,即使是-i也是通过临时文件来实现的。但后面的“将输出屏幕”就显得不那么与时俱进了

论坛徽章:
0
5 [报告]
发表于 2009-12-11 09:22 |只看该作者
了解了~~
貌似  有个w参数也是写入文件的吧

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2009-12-11 09:33 |只看该作者
支持!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP