sed命令使用实例学习

[ 不指定 2005/06/13 10:06 | by mlsx ]
只所以看sed命令,是因为我遇到了这个一个问题。


网上有很多教程,他们发表了很多程序代码,但是作者为了解释方便,都对程序作了行号编码,就像下面这样:

1:#!/bin/bash
2:#rename file extesions
3:#
4:#     rfe old_extensions new_extension


假设这个文件名是tmp,那么我们可以使用下面的命令来去掉这个行号和冒号(:)

sed -e  s'/^[0-9]{1,}://g' tmp


不过上面的命令的命令有一个缺点,那就是如果这个行号不是数字开头,而是有空格的话,那就需要修改匹配规则,规则应该修改为匹配第一个非空白字符是数字开始,后面接一个冒号的配对。命令如下:
sed -e  s'/^[^0-9a-zA-Z]*[0-9]{1,}://g' tmp


这令我很兴奋,于是想看看sed到底有多厉害,看了以后,明白的是不是sed有多厉害,就像awk一样,他们只是把正规表达式用到了极致。



下面看看sed命令的一些用法实例:
sed 命令用法列表

1.sed -n '2'p filename
打印文件的第二行。
2.sed -n '1,3'p filename
打印文件的1到3行
3. sed -n '/Neave/'p filename
打印匹配Neave的行(模糊匹配)
4. sed -n '4,/The/'p filename
在第4行查询模式The
5. sed -n '1,$'p filename
打印整个文件,$表示最后一行。
6. sed -n '/.*ing/'p filename
匹配任意字母,并以ing结尾的单词(点号不能少)
7 sed -n / -e '/music/'= filename
打印匹配行的行号,-e 会打印文件的内容,同时在匹配行的前面标志行号。-n只打印出实际的行号。
8.sed -n -e '/music/'p -e '/music/'= filename
打印匹配的行和行号,行号在内容的下面
9.sed '/company/' a "Then suddenly it happend" filename
选择含有company的行,将后面的内容"Then suddenly it happend"加入下一行。注意:它并不改变文件,所有操作在缓冲区,如果要保存输出,重定向到一个文件。
10. sed '/company/' i "Then suddenly it happend" filename
同9,只是在匹配的行前插入
11.sed '/company/' c "Then suddenly it happend" filename
用"Then suddenly it happend"替换匹配company的行的内容。

12.sed '1'd ( '1,3'd '$'d  '/Neave/'d) filename
删除第一行(1到3行,最后一行,匹配Neave的行)

13.[ address [,address]] s/ pattern-to-find /replacement-pattern/[g p w n]
s选项通知s e d这是一个替换操作,并查询pattern-to-find,成功后用replacement-pattern替换它。
替换选项如下:
g 缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。
p 缺省s e d将所有被替换行写入标准输出,加p选项将使- n选项无效。- n选项不打印输出
结果。
w 文件名使用此选项将输出定向到一个文件。(注意只将匹配替换的行写入文件,而不是整个内容)

14.sed  s'/nurse/"hello "&/' filename
将'hello '增加到'nurse' 的前面。

15. sed '/company/r append.txt' filename
在匹配company的行的下一行开始加入文件append.txt的内容。

16. sed '/company/'q filename
首次匹配company后就退出sed程序 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"sed and awk 101 hacks" 是一本关于使用 sed 和 awk 命令的技巧集合。 sed 是一种流编辑器,用于在文本中进行查找和替换的操作。它使用简单的命令来处理文本,并且非常强大和灵活。这本书提供了许多关于使用 sed 命令的技巧和技巧。一些常见的应用包括:全局替换、删除、插入和追加文本、使用正则表达式进行匹配等。通过阅读这本书,你将了解如何更有效地使用 sed 命令来处理文本文件,提高你的工作效率。 awk 是一种处理文本数据的编程语言,它可以用于查找、提取和转换数据。awk 命令的主要功能是逐行扫描文件并执行基于规则的操作。在这本书中,你将学习到如何使用 awk 命令来处理文本数据,并解决各种实际问题。一些常见的应用包括:数据分析、报告生成、格式化输出、数据过滤和转换等。通过学习 awk 的技巧和技巧,你将成为一个更高效的文本数据处理者。 这本书主要面向那些已经熟悉 sed 和 awk 命令,并且希望提高他们的技能的人群。它提供了许多实际的示例和用法,帮助读者更好地掌握 sed 和 awk 的使用。内容涵盖了许多不同的主题,包括入门指南、高级用法、实用技巧和示例脚本。无论你是初学者还是有经验的用户,这本书都将是一个有用的参考工具。 总的来说,"sed and awk 101 hacks" 是一本关于使用 sed 和 awk 命令的实用指南和技巧合集。通过学习和实践这些技巧,你将能够更好地处理和处理文本数据,提高你的工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值