sed 一 流编辑
发布时间:2020-12-14 00:19:29 所属栏目:Linux 来源:网络整理
导读:简介 sed 采用的是流编辑模式: 最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中。此命令执行数据的顺序如下:
简介sed 采用的是流编辑模式: 最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。 sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中。 此命令执行数据的顺序如下: 1. 每次仅读取一行内容。根据提供的规则命令匹配并修改数据。 注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据; 2. 将执行结果输出。 3. 当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。 sed 基本选项sed [选项] [脚本命令] 文件名 选项 -e 脚本命令,该选项会将其后跟的脚本命令添加到已有的命令中。 -f 脚本命令文件,该选项会将其后文件中的脚本命令添加到已有的命令中。 -n 默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容, 而该选项会屏蔽启动输出,需使用 print 命令来完成输出。 -i 此选项会直接修改源文件,要慎用。 查找替换s 查找替换脚本命令。此命令的基本格式为: [address]s/pattern/replacement/flags address 表示指定要操作的具体行, pattern 指的是需要替换的内容, replacement 指的是要替换的新内容。 flags标记 选项 n 1~512 之间的数字,表示指定要替换的字符串出现第几次时才进行替换, 例如,一行中有 3 个 A,但用户只想替换第二个 A,这是就用到这个标记; g 对数据中所有匹配到的内容进行替换, 如果没有 g,则只会在第一次匹配成功时做替换操作。 p 会打印与替换命令中指定的模式匹配的行。此标记通常与 -n 选项一起使用。 w file 将缓冲区中的内容写到指定的 file 文件中; & 用正则表达式匹配的内容进行替换; n 匹配第 n 个子串,该子串之前在 pattern 中用 () 指定。 转义(转义替换部分包含:&、等)。 sed -n "s/aa[a-z]aa/aa666aa/p" ld 查找替换并打印 常见命令astring 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“”续行 c 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用""续行 i 在当前行之前插入文本。多行时除最后一行外,每行末尾需用""续行 d 删除行 h 把模式空间里的内容复制到暂存缓冲区 H 把模式空间里的内容追加到暂存缓冲区 g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容 G 把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面 l 列出非打印字符 p 打印行 n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理 q 结束或退出sed r 从文件中读取输入行 ! 对所选行以外的所有行应用命令 s 用一个字符串替换另一个 g 在行内进行全局替换 w 将所选的行写入文件 x 交换暂存缓冲区与模式空间的内容 y 将字符替换为另一字符(不能对正则表达式使用y命令) 示例sed "2d" ld 删除第二行 sed "/[0-9]/d" ld 用正则匹配数字的行并删除 sed "/12/d" ld 匹配12的行并删除 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |