`
tomotoboy
  • 浏览: 166840 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

sed用法介绍

阅读更多
输出第1行到第3行
-bash-3.00$ sed -n '1,3p' sed.txt
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
wangmin803   pts/16       Jul 29 14:18  (219.149.138.142)
majorchan   pts/21       Jul 29 15:18   (202.203.137.236)


输出第2行
-bash-3.00$ sed -n '2p' sed.txt
wangmin803   pts/16       Jul 29 14:18  (219.149.138.142)


查找含有tomotoboy的行让后输出
-bash-3.00$ sed -n '/tomotoboy/'p sed.txt
tomotoboy   pts/45       Jul 29 13:53   (219.221.99.155)
tomotoboy   pts/46       Jul 29 15:24   (219.221.99.155)
tomotoboy   pts/52       Jul 29 16:20   (219.221.99.155)


输出当前的所有用户
/home/l/g/tomotoboy >who
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


输出第一行到含有字符串tomotoboy的行
/home/l/g/tomotoboy >who | sed -n '1,/tomotoboy/'p
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)


输出原文的同时,输出tomotoboy所在的行号
-/home/l/g/tomotoboy >who|sed '/tomotoboy/'=
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
2
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


输出含有tomotoboy的行的行号
/home/l/g/tomotoboy >who | sed -e '/tomotoboy/'=
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
2
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
kindy      pts/38       Aug  7 21:33    (reverse.gdsz.cncnet.net)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


输出第一行到最后一行
/home/l/g/tomotoboy >who | sed -n '1,$p'
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


输出最后一行
/home/l/g/tomotoboy >who|sed -n '$p'
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


append.sed:sed脚本实现附加功能,将hello tomotoboy附件在tomotoboy所在行之后
/home/l/g/tomotoboy >cat append.sed
#!/bin/sed -f
/tomotoboy/ a\
hello tomotoboy

/home/l/g/tomotoboy >who| append.sed
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
tomotoboy   pts/16       Aug  7 21:24   (219.221.98.71)
hello tomotoboy
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
kindy      pts/38       Aug  7 21:41    (reverse.gdsz.cncnet.net)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


文本输出时,把tomotoboy替换成hello
/home/l/g/tomotoboy >who|sed 's/tomotoboy/hello/'
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
hello   pts/16       Aug  7 21:24       (219.221.98.71)
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


只输出被替换的行
/home/l/g/tomotoboy >who|sed -n 's/tomotoboy/hello/p'
hello   pts/16       Aug  7 21:24       (219.221.98.71)


如果要附加或修改一个字符串,可以使用(&)命令,&命令保存发现模式以便重新调用它,然后把它放在替换字符串里面。
/home/l/g/tomotoboy >who|sed -n 's/tomotoboy/hello &/p'
hello tomotoboy   pts/16       Aug  7 21:24     (219.221.98.71)
/home/l/g/tomotoboy >who|sed -n 's/tomotoboy/& my friend/p'
tomotoboy my friend   pts/16       Aug  7 21:24 (219.221.98.71)


删除最后一行
bash-3.00$ sed '$d' sed.txt 
删除第一到最后6行
-bash-3.00$ sed '1,6d' sed.txt 
删除第一到最后一行
-bash-3.00$ sed '1,$d' sed.txt 
删除tomotoboy的行
-bash-3.00$ sed '/tomotoboy/d' sed.txt 
用seawolf替代tomotoboy
-bash-3.00$ sed 's/tomotoboy/seawolf/' sed.txt 
用seawolf替代tomotoboy然后输出到sed.out
-bash-3.00$ sed 's/tomotoboy/seawolf/w sed.out' sed.txt


看看我们写好了哪些sed脚本
/home/l/g/tomotoboy >ls -al|grep 'sed$'
-rwxr--r--   1 tomotoboy member        45 Aug  7 21:41 append.sed
-rwxr--r--   1 tomotoboy member        68 Jul 30 16:28 change.sed

看看change.sed的用途是什么?
/home/l/g/tomotoboy >cat change.sed
#!/bin/sed -f
#change.sed
/tomotoboy/ c\
I love China,Ilove Wanzhi.

找到tomotoboy,替换为I love China,Ilove Wanzhi.
/home/l/g/tomotoboy >who|change.sed
liuzk423   pts/6        Jul 20 08:27    (219.245.104.240)
I love China,Ilove Wanzhi.
guise      pts/21       Aug  7 17:56    (124.76.10.207)
guise      pts/35       Aug  7 21:13    (58.41.162.27)
uyty       pts/38       Aug  7 22:09    (p3213-ipbf803souka.saitama.ocn.ne.jp)
yagamil    pts/46       Aug  7 20:48    (199.40.206.191)


分享到:
评论

相关推荐

    sed用法介绍,非常实用

    ### sed用法详解 #### 一、sed简介 sed(stream editor)是一个强大的文本流编辑器,主要用于自动化处理文本文件的编辑任务。它能够高效地完成查找、替换、添加等编辑工作,尤其适用于批量处理大量文件。sed的操作...

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第10章 sed 用法介绍 89 第11章 合并与分割 104 第12章 tr用法 119 第三部分 登录环境 第13章 登录环境 125 第14章 环境和shell变量 132 第15章 引号 146 第四部分 基础shell编程 第16章 shell脚本介绍 151 第17章...

    sed 用法介绍

    ### sed用法详解 #### 一、sed简介与特点 sed,全称为“Stream EDitor”,是一个非交互式的文本流编辑器,广泛应用于Linux及类Unix系统中。它能够高效地处理文本文件或标准输入输出的数据流,进行查找、替换、删除...

    shell基础sed用法详解

    sed 用法介绍 s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。 引用: . 抽取域。 . 匹配正则表达式。 . 比较域。 . 增加、附加、替换。 . 基本的s e d命令和一行脚本。

    SED命令完全解读

    ### SED用法介绍 1. **基本格式**: SED命令的基本格式为: ``` sed [-n] [-e] 'command' file(s) sed [-n] -f scriptfile file(s) ``` 其中,`-n`选项抑制默认的输出,`-e`选项后跟单个命令,`-f`选项用于从...

    linux sed 常用用法举例01

    本篇文章将重点介绍`sed`的一些常用用法,以帮助读者更好地理解和应用这个工具。 1. **基本语法** `sed`的基本命令格式是: ``` sed [选项] '命令' 文件 ``` 其中,`选项`通常用于设置工作模式,`命令`是你要...

    sed用法实例指导DOC版

    这个名为“sed用法实例指导DOC版”的文档,显然是为了帮助用户深入理解和掌握sed的各种功能和技巧。 首先,我们来看看sed的基本结构。一条sed命令通常由地址范围和命令组成,格式为`[address[,address]]command`。...

    sed中文指南 详细介绍了SED的用法与实例

    ### SED中文指南:深入解析SED的用法与实例 #### 1. SED简介 SED,全称为Stream Editor,是一种强大的文本处理工具,广泛应用于UNIX系统中,用于自动化文本编辑任务。它允许用户通过一系列预定义的命令来对文本...

    sed高级用法学习笔记和实例

    ### sed 高级用法详解 #### 一、sed简介 **sed**(Stream EDitor)是一种强大的文本处理工具,主要用于自动化地对文本文件进行编辑。它以行为单位处理文本,适用于以下几种情况: 1. **处理大型文件**:对于那些不...

    sed 用法sed 用法sed 用法

    ### sed 命令用法详解 #### 一、sed 命令简介 `sed`(stream editor)是一款功能强大的文本处理工具,主要用于对文本流进行编辑与修改。它支持正则表达式,能够非常方便地实现字符串查找、替换等操作。 #### 二、...

    linux sed 用法详细说明

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法

    LINUX与UNIX_Shell编程指南

    第10章 sed 用法介绍 第11章 合并与分割 第12章 tr用法 第三部分 登录环境 第13章 登录环境 第14章 环境和shell变量 第15章 引号 第四部分 基础shell编程 第16章 shell脚本介绍 第17章 条件测试 等等,内容较多

    sed高级用法.html

    sed高级用法.html 这个可要好好学一学,用得着,十分方便的工具

    5.4: 正则表达式 、 sed基本用法 、 sed文本块处理.docx

    本文档主要讲解了正则表达式的基本用法和sed命令的应用,通过实际案例,详细介绍了正则表达式的匹配规则和sed命令的使用方法。 1. 正则表达式的基本用法 正则表达式是一种灵活的字符串匹配方式,广泛应用于 Unix/...

    Unix shell 基础知识普及

    10. sed 用法介绍 11. 合并与分割 12. tr 用法 13. 登录环境 14. 环境与 SHELL 变量 特定s h e l l变量 15. 引号 16. SHELL 脚本介绍 17. 条件测试 18. 控制流结构 19. SHELL 函数 20. 向脚本传递参数 21. 创建屏幕...

    LINUXshel详细l编程指南

    第10章 sed 用法介绍 第11章 合并与分割 第12章 tr用法 第13章 登录环境 第14章 环境和shell变量 第15章 引号 第16章 shell脚本介绍 第17章 条件测试 第18章 控制流结构 第19章 shell函数 第20章 向...

    shell编程 linux

    010sed 用法介绍.pdf 011合并与分割.pdf 012tr 用法.pdf 013登录环境.pdf 014环境和shell变量.pdf 015引号.pdf 016shell脚本介绍.pdf 017条件测试.pdf 018控制流结构.pdf 019shell 函数.pdf 020向脚本...

    Linux宝库 - sed用法

    将介绍执行命令列上的编辑指令 、sed 编辑指令、执行档案内的编辑指令、执行多个档案的编辑、及 执行 sed 输出控制。

Global site tag (gtag.js) - Google Analytics