sed巩固扩展

作者: awsome365 | 来源:发表于2018-10-14 16:55 被阅读0次

打印某行到某行之间的内容

例如:有个文件test的内容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取[abcfd]到[rty]之间的内容呢?

参考:sed -nr '/[abcfd]/,/[rty]/p' tets。sed单引号中命令可以有范围匹配和指定动作,范围可以是像1,5指定行,也可以把数字换成匹配行内容的正则表达式。

sed转换大小写

sed中,使用\u表示大写,\l表示小写。

例1. 把每个单词的第一个小写字母变大写:
sed 's/\b[a-z]/\u&/g' filename
\b代表单词开始或结尾,&代表当下匹配的整体。

例2. 把所有小写变大写:
sed 's/[a-z]/\u&/g' filename

例3. 大写变小写:
sed 's/[A-Z]/\l&/g' filename

sed在某一行最后添加一个数字

例如在test文件中a开头的行末添加12:sed 's/\(^a.*\)/\1 12/' test\1代表前面圆括号的整体,也可以用&代替。

另外补充几个命令:

  • a 在当前行后添加一行或多行
  • i 在当前行之前插入文本
  • c 用新文本修改(替换)当前行中的文本
  • I 匹配字母时不分大小写

删除某行到最后一行

sed '/c/{p;:a;N;$!ba;d}' test

定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。

if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循环,d命令删除。

打印1到100行含某个字符串的行

参考:sed -n '1,100{/abc/p}' 1.txt

也可以用多个命令配合管道符完成。上面这个命令提现了sed和awk命令形式的相通性,大括号用来扩起命令组。

相关文章

  • sed巩固扩展

    打印某行到某行之间的内容 例如:有个文件test的内容如下:ertfff**[abcfd]123324444[rt...

  • awk巩固扩展

    awk 中使用外部shell变量 选项-v可以实现使用外部变量。 如:A=44echo "ABCD" | awk ...

  • 复习 扩展sed

    打印文件中特定的某行到某行之间的内容例如:有个文件test的内容如下:ertfff**[abcfd]1233244...

  • 18-三剑客之sed后向引用的补充及awk

    一、sed后向引用的巩固 1、获取网卡ip的地址:ip a s eth0方法1----sed 正则 方法2----...

  • Linux运维笔记之强大文本处理工具Sed

    今天学习了一下Linux自带的文本处理工具Sed感觉挺实用的,写个笔记巩固一下吧 Sed是什么? Sed是一款流编...

  • Linux sed 命令详解

    目录 一、基本正则列表与扩展正则二、sed 文本处理工具的用法介绍三、认识sed工具的 n、r、i 选项指令四、认...

  • sed的分组用法

    在sed 启用扩展正则表达式之后,通常更多的配合分组功能进行使用,这时候需要注意的内容如下:A. 启用sed 的扩...

  • 10-文本处理三剑客之sed

    本章内容 ◆ Sed介绍◆ Sed用法◆ Sed高级用法 处理文本的工具sed sed工具 练习 1、删除cent...

  • sed与awk

    环境准备 sed命令查找 查找指定的行 过滤出指定的行 grep 命令实现 这里的例子包含扩展正则符号,不适用eg...

  • sed使用

    94 sed(上) sed工具 sed -n '/root/'p 匹配字符串root sed -n '2'p ...

网友评论

    本文标题:sed巩固扩展

    本文链接:https://www.haomeiwen.com/subject/rbftzftx.html