linux

您所在的位置:网站首页 sed命令s linux

linux

#linux| 来源: 网络整理| 查看: 265

linux - sed常用命令

sed命令用法

linux--sed命令

sed命令详解

22.Linux sed命令详解

linux常用操作(八)-sed命令详细说明

使用语法

使用规则

sed 参数 命令 input_file

常用参数:

参数 作用 -n 取消默认 sed 输出,仅输出符合条件的行;常与sed 内置命令 p 一起使用 -i 直接把修改结果写入文件;不用 -i,sed 修改的是内存数据 -e 多次编辑不需要管道符 -r 支持扩展正则表达式

常用命令:

命令 作用 a 对文本追加,在指定行后面添加一行;多行时除最后一行外,每行末尾需用 “\n” 续行 c 用新文本修改(替换)当前行中的文本;多行时除最后一行外,每行末尾需用 “\n” 续行 i 表示插入文本,在指定行前添加一行或多行文本;多行时除最后一行外,每行末尾需用 “\n” 续行 d 删除匹配的行 p 打印匹配行的内容 s/正则/替换内容/g 匹配正则内容,然后替换内容,结尾 g 表示全局匹配

sed的正则表达式元字符

元字符 作用 \(..\) 保存已匹配的字符 & 保存查找串以便在替换串中引用 \/:匹配包含以 love 结尾的单词的行 x\{m\} 连续 m 个 x x\{m,\} 至少 m 个 x x\{m,n\} 至少 m 个 x,但不超过 n 个 x 实例

准备文件

image-20210521155712934 打印:p 命令

打印第二行和第三行。不加 -n 的情况下,sed 会打印全文并把符合条件的行打印两遍,加上 -n 只会打印符合条件的内容

sed '2,3p' 1.txt sed -n '2,3p' 1.txt image-20210521160515353

打印以 This 开头的行

sed -n '/^This/p' 1.txt image-20210524134328083

打印含有以 Th 为单词词首的行

sed -n '/\/p' 1.txt image-20210524135129213

打印以 Th 开头,ne 结尾的行

sed -n '/Th.*ne$/p' 1.txt image-20210524154747555

打印前四行并且打印行号;= 表示打印行号,用到不同编辑命令时,用 {} ,且不同编辑命令之间用分号分割

sed -n '1,4{=;p}' 1.txt image-20210525154521947

打印除前四行以外的其他行,不知道一共有多少行,可以用 !反选

sed -n '1,4!p' 1.txt image-20210525155839610

打印第一行到匹配到 third 的行

sed -n '1,/third/p' 1.txt image-20210525160525612

打印匹配到 second 的行到匹配到 third 的行

sed -n '/second/,/third/p' 1.txt image-20210525160707340 插入:a 命令和 i 命令

a 命令和 i 命令的使用方法相同,不同的是 a 命令是在行之后添加内容,i 命令是在行之前插入内容。

在第一行之后/之前添加 add one

sed '1a add one' 1.txt sed '1i add one' 1.txt image-20210525162213874

在第二行到第三行之后/之前添加 add one

sed '2,3a add one' 1.txt sed '2,3i add one' 1.txt image-20210525162546997

匹配到 second 的行到匹配到 third 的行之后/之前添加 add one

sed '/second/,/third/a add one' 1.txt sed '/second/,/third/i add one' 1.txt image-20210525162835196

在第一行之后/之前添加 add one,add two 两行,用 \n 分隔开

sed '1a add one\nadd two' 1.txt sed '1i add one\nadd two' 1.txt image-20210525163219648

在第一行之前加 start,在最后一行之后加 end,对单个文件进行多个操作可以用 -e

sed -e '1i start' -e '$a end' 1.txt image-20210525163850423 删除:d 命令

删除第一行

sed '1d' 1.txt image-20210525171452576

删除二到三行

sed '2,3d' 1.txt image-20210525171539971

删除匹配到 last 的行

sed '/last/d' 1.txt image-20210525171637812 替换行:c 命令

将第一行替换为第一行

sed '1c 第一行' 1.txt image-20210525171854810

将匹配到 Monday 的行替换为星期一

sed '/Monday/c 星期一' 1.txt image-20210525172028724 替换字符串:s 命令

使用方法:s/正则/替换内容/,常与 g 连用表示全局替换

将全文的 line 替换为 text,不加 g 只替换每一行的第一个 line

sed 's/line/text/g' 1.txt sed 's/line/text/' 1.txt image-20210525173036379

s 命令也可以与 p 和 -n 连用,只打印匹配到的行

sed -n 's/day/DAY/p' 1.txt image-20210525174314732

将 is 加上双引号,也就是用 “is” 替换 is。可以用 & 号,当它用在替换字符串中的时候,代表的是原始的查找匹配数据。

sed 's/is/"&"/g' 1.txt image-20210525174809535


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3