Linux命令之——sed命令

编程能力:

脚本编程

grep,sed(流编程器),awk

sed 基本用法:

sed:Stream EDitor

行编辑器(全屏编辑器:vi)

sed:模式空间

默认不编辑原文件,仅对模式空间中的数据做处理;而后,将处理结束后的空间打印到屏幕上

用法:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

sed +选项+{sed 脚本}

sed [选项] ‘AddressCommand‘ file... \对这个(这些)文件符合这个指定范围的行实现指定命令。

-n:静默模式 (不显示模式空间的内容)

-i:直接修改原文件

-e SCRIPT -e SCRIPT:可以同时执行多个脚本

-f /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts file

-r:表示使用扩展正则表达式

Address:

  1. StartLine,EndLine

    比如1,100

  2. /RegExp/     \正则表达式来指定的模式

    比如/^root/   \已root开始的行

  3. /pattern1/,/pattern2/   \模式1,模式2

    第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,中间的所有行。

  4. LineNumber    \行号

    $ :最后一行

  5. StartLine ,+N    \从指定的行开始,向后的N行。

Command:

d:删除符合条件的行;

例:

#sed ‘1,2d‘ /etc/fstab      \删除/etc/fstab 中的1,2行

#sed ‘/s/d‘ /etc/fstab      \删除/etc/fstab 中带有‘s‘的行

#sed ‘/^/\/d‘ /etc/fstab     \删除已斜线开头的行(\是特殊字符要用/转义)

p:显示符合条件的行

例:

#sed ‘/^/\/d‘ /etc/fstab   \删除已斜线开头的行(\是特殊字符要用/转义)

#sed -n‘/^/\/p‘ /etc/fstab   \只显示已斜线开头的行

# sed -n ‘/^#/p‘ /etc/fstab  \打印已#开头的行

a \string:在指定的行后面追加新行,内容为string

例:# sed ‘/s/ a \hi‘ /etc/fstab    \在所有带s的行后面追加一行 hi。

#sed ‘/s/a \hi. \nhello.‘ /etc/fstab   \在所有带s的行后边追加一行hi,一行hello.

i \string:在指定的行前面添加新行,内容为string

r File:将指定的文件的内容添加到指定行处。

例:

# sed ‘1r /etc/passwd‘ /etc/fstab   \在文件fstab第一行后边添加文件passwd的内容。

w File: 将地址指定的范围内的行另存至指定的文件中

例:

#sed ‘/s/w /tmp/s.txt‘ /etc/fstab    \将fstab文件中带有s的行保存到tmp下的s.txt文件中

s/pattern/string/修饰符:          \将文件中查找到的pattern替换成string(默认是只替换每行中第一次匹配到的字符串)  修饰符 g:全局替换  i:忽略字符大小写

附加:s/// 可以写成s### 、s$$$    \分隔符可以用特殊字符来替换

&:引用模式匹配的整个串

例:

#sed ‘s/s/S/‘ /tmp/s.txt    \将文件s.txt中的所有s替换成S

#sed ‘s/l..e/&r/‘ 引用.sh   \将文件引用.sh中已l开始e结尾的字符后边加上r

#sed ‘s#l\(..e\)#L\1#g‘ 引用.sh \改变引用字符一部分用后向引用

时间: 2024-11-05 20:26:55

Linux命令之——sed命令的相关文章

〖Linux〗使用sed命令修改小端(little endian)存储的数据

1 #!/bin/bash - 2 #=============================================================================== 3 # 4 # FILE: hex_change.sh 5 # 6 # USAGE: ./hex_change.sh 7 # 8 # DESCRIPTION: 9 # 10 # OPTIONS: --- 11 # REQUIREMENTS: --- 12 # BUGS: --- 13 # NOTES:

linux shell 用sed命令在文本的行尾或行首添加字符

from:http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“T

Linux Shell编程 sed命令

概述 sed命令用来选取.替换.删除.新増数据 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器.sed 有许多很好的特性.首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍.其次,因为 sed 是一种流编辑器,所以,它可以对从如管道这样的标准输入中接收的数据进行编辑.因此,无须将要编辑的数据存储在磁盘上的文件中.因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易.sed 主要是用来将数据进行选取.替换

Linux三剑客之sed命令

选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替换文本中的字符串: 全面替换标记g 保持和获取:h命令和G命令 保持和互换:h命令和x命令 sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 作业: sed命令 sed 简介 Stream

Linux下的sed命令使用详解

sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出. 使用语法sed命令的使用规则是这样的: sed [option] 'command' input_file 其中option是可选的,常用的option有如下几种: -n

Linux中的sed命令

sed - stream editor for filtering and transforming text 流编辑器的过滤和转换文本 sed [-nerf] [动作] 参数: -i 修改源文件 危险 -e 直接在命令行模式上执行sed的动作编辑 -f 直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作 -r :使用扩展的正则表达式 -n 静默模式,默认的sed中所有来自stdin的数据一般都会被列出到屏幕上,但如果加上-n之后,则只有经过sed

linux基础之sed命令

Sed 流 编 辑 器 1.sed的基本用法: sed  [OPTION]...  'script' input-file... 2.sed:Stream   Editor  文本编辑器 行编辑器(全屏编辑器:vi) 3.sed:模式空间 默认不编辑源文件,仅对模式空间中的数据做处理,而后,处理结束后,讲模式空间打印至屏幕 1>.常用选项: -n  : 静默模式,不再默认显示模式空间的内容: -i   : 直接修改源文件: -e  : script   -escript    可以同时执行多个脚

linux下的sed命令小结

sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. 默认情况下,sed的所有处理行为不会影响源文件的内容:我们一般会使用sed命令来自动编辑一个或多个文件,简化对文

Linux自学笔记——sed命令

sed行编辑器: sed是一种行编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时存储区中,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,知道文件末尾.文件内容并没有改变,除非你使用重定向存储输出或者配合编辑选项使用.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed用法: sed - stream editor for filtering andtransformin

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器