Linux下sed命令使用全解析

   一、Sed简介

  Sed:Stream Editor 流式编辑器 又称行编辑器,每次只编辑一行。Sed工作是在“模式空间”中进行的,并不操作源文件。对源文件无危害。

  二、Sed使用格式

  Sed命令的常用格式如下:

  (1)Sed [options] ‘script’ input_file…

  (2)Sed [options] –f script_file input_file…

  (3)Sed [options] ‘ADDR1,ADDR2command’ input_file…

  例如:#sed ’1,2d’ fstab 就可以将fstab的前两行删除并显示出来,但是它不会改变源文件。

  #Sed ‘1,2!d’ fstab 表示删除除第一行和第二行之外的所有行。

  (4)Sed [options] ‘/PATTERN/command’ input_file……

  &:s/l..e/&er/:表示引用前面匹配到的所有字符。

  例如:sed ‘/[[:upper:]]/d’ binary.sh 表示删除所有的大写字母的行。

  (5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file……

  说明:这表示从第一次被PATTERN1匹配到的行到第一次被PATTERN2匹配到的中间的所有行执行command命令。

  三、Sed的常用选项:

  -n:只显示sed匹配到的行。其余行不显示。下文有范例。

  -i :可以直接操作原文件。默认情况下sed不会改变原文件,但是-i选项可以修改原文件,此选项应慎用。

  -r:可以使用标准正则表达式。默认情况下sed只支持基本正则表达式,但是加上-r选项后则支持扩展正则表达式

  -e:多脚本共用。可以同时执行多个命令。例如:

  代码如下:

  [root@localhost ~]# sed -e 's@@H1@g' -e 's@(l..e).@1r.@g' test

  He love His lover.

  She like Her liker.

  Dove love Her liker.

  也可以这样用,中间用分号隔开:

  代码如下:

  [root@localhost ~]# sed 's@@H1@g;s@(l..e).@1r.@g' test

  四、使用示例

  代码如下:

  #sed -e 命令行处理 -a 新增

  > sed -e '$ a widuu' test.txt #在test.txt的结尾处添加widuu

  代码如下:

  # 把-e换成-n

  > sed -n '$ a widuu' test.txt # 只显示被处理的一行

  代码如下:

  # -c 替换多少行 为你制定的字符串,这里我的test.txt内容如图

  > sed -e '2,5c xiaowei' test.txt #把2-5行替换成字符串xiaowei

  代码如下:

  # 多命令执行 -e

  > sed -e '2,5c xiaowei' -e 's/cccc/widuu/' test.txt

  代码如下:

  # -i 不输出 -s 替换

  >sed -i 's/111111/widuu/g' test.txt

  代码如下:

  # i 插入 自定义的字符串 在test.txt的第二行插入xiaowei

  > sed -e '2i xiaowei' test.txt

  代码如下:

  # d 删除输入任何字符串

  > sed -e '2d' test.txt #删除第二行

时间: 2024-07-30 17:14:15

Linux下sed命令使用全解析的相关文章

Linux下sed命令的用法

grep -v 关键字  文件  文件中的关键字给过滤掉 grep -v "^关键字"  文件  以关键字开头的给过滤掉 sed -e '/关键字/d'文件   输出时把关键字给删除掉 以/etc/passwd为例: 输出除了1-30之外的行: 只输出文本的1-3行: 输出除了以root行开头的行: 拿westos替换掉文本中所有的root字符输出: 拿westos替换到文本中第一列的所有root字符: 返回栏目页:http://www.bianceng.cnhttp://www.bi

linux下通过命令行获取gmail的新邮件

  在这篇文章中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,有需要的小伙伴可以参考下. linux下通过命令行获取gmail的新邮件,不需输入@gmail.com部分 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 #!/bin/bash   num="33[1;36m" end="33[0m"   read -p "Enter your mail: " name rea

理解Linux下Shell 命令的不同分类及它们的用法

当你打算真正操纵好你的 Linux 系统,没有什么能比命令行界面更让你做到这一点.为了成为一个 Linux 高手,你必须能够理解 Shell 命令的不同类型,并且会在终端下正确的使用它们. 在 Linux 下,命令有几种类型,对于一个 Linux 新手来说,知道不同命令的意思才能够高效和准确的使用它们.因此,在这篇文章里,我们将会遍及各种不同分类的 Linux Shell 命令. 需要注意一件非常重要的事:命令行界面和 Shell 是不同的,命令行界面只是为你提供一个访问 Shell 的方式.而

Linux下history命令详解---转载

Linux下History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 . >History命令语法: [www.linuxidc.com@linux]# history [n] [www.linuxidc.com@linux]# history [-c] [www.linuxidc.com@linux]# history [-raw] histfiles 参数: n  :数字,要列出最近的 n 笔命令列表 -c :将目前的shell中的所有 history 内容全部消除 -a :将

linux下通过命令行获取gmail的新邮件_linux shell

linux下通过命令行获取gmail的新邮件,不需输入@gmail.com部分 #!/bin/bash num="\033[1;36m" end="\033[0m" read -p "Enter your mail: " name read -p "Enter pass of mail: " pass atom=`wget -qO - https://$name:$pass@mail.google.com/mail/feed/

理解 Linux 下 Shell 命令的不同分类及它们的用法

当你打算真正操纵好你的 Linux 系统,没有什么能比命令行界面更让你做到这一点.为了成为一个 Linux 高手,你必须能够理解 Shell 命令的不同类型,并且会在终端下正确的使用它们. 在 Linux 下,命令有几种类型,对于一个 Linux 新手来说,知道不同命令的意思才能够高效和准确的使用它们.因此,在这篇文章里,我们将会遍及各种不同分类的 Linux Shell 命令. 需要注意一件非常重要的事:命令行界面和 Shell 是不同的,命令行界面只是为你提供一个访问 Shell 的方式.而

grep-windows下类似linux下搜索命令

问题描述 windows下类似linux下搜索命令 想问一下如何在windows下有没有类似linux下的"find "+url+" | xargs grep "+keyWords的命令, 就是在指定路径下通过关键字搜索返回含有关键字的文件. 解决方案 写个批处理留着,类似http://wenku.baidu.com/link?url=KC_AB4vCJ85JbBT0EJFYwzQOvuqmDdATAOVwv85raC_q6N0-CXd9d7pk3n3yz1pobh

Linux下find命令实例

Linux下find命令实例 $find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示 $find . -name "*.txt" -print $find . -name "[A-Z]*" -pri26nbsp; #对匹配的文件使用cpio命令,将他们备份到 磁带设备中-prune #忽略某个目录 $find . -name "[A-Z]*" -print #查以大写字母开头的文件 $f

Linux 下 Make 命令实例详解

  Linux 下 Make 命令实例详解          Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make 命令背后的工作机制. Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标.这些目标通常存放在以 "Makefile" 来命名的特殊文件中,同时文件也包含与目标相对应的操作.更多信息,阅读关