sed 命令总结
使用如下命令生成 filename 文件
#### 术语介绍
模式空间: sed 正在处理的内容,一般为文件的一行,也可使用特殊命令(如 N),进行扩展
#### 选项
sed -r 启用扩展的正则表达式
sed = 打印行号(行号占独立一行)
#### 命令
i\ 在匹配的行前插入
#在第五行插入 a\\aa\na\ta (支持 \\ \n \t 等转意字符)
a\ 在匹配的行后添加,用法同 i\
c\ 对匹配的行进行替换(对整个模式空间进行替换) ,用法见 i\
d 删除匹配到的行
q 退出 sed , 不再对后续的文件内容进行处理
Q 同 q ,不同点在于,q 打印当前模式空间中的内容,而 Q 不打印直接退出
(通俗解释:q打印匹配到的行再退出,Q不打印,直接退出)
first~step 从第first 行开始,每隔 step 行打印一行
$ 用于匹配最后一行
0,addr2 从开始匹配到 addr2, addr2 只能使用正则表达式配置,如果配置不到,则会打印整个文件
addr1,+N 从 addr1 匹配到之后的 N 行,addr1 可以使用正则表达式配置
addr1,~N 同上,但是之前的 N 行
使用如下命令生成 filename 文件
cat <<EOF >filename
aaaaaaaaaaaa
bbbbbbb
ccccc
ddddddddddd
eeeeeeee
ffffffffffffffffffffff
hhhhhhhhhhhhh
iiiiiiiiiiii
jjjjjjjjj
kkkkkkkkkkkkkkkk
llllllllllllll
mmmmmmmmmmmmmmmmmmmm
EOF
#### 术语介绍
模式空间: sed 正在处理的内容,一般为文件的一行,也可使用特殊命令(如 N),进行扩展
#### 选项
sed -i 选项可跟一参数做为备份文件的后辍名
sed -i.bak -n 'p' filename
上面命令会产生一个名为 filename.bak 的文件
sed -r 启用扩展的正则表达式
sed = 打印行号(行号占独立一行)
#### 命令
i\ 在匹配的行前插入
sed '5i\a\\aa\na\ta' filename
#在第五行插入 a\\aa\na\ta (支持 \\ \n \t 等转意字符)
a\ 在匹配的行后添加,用法同 i\
c\ 对匹配的行进行替换(对整个模式空间进行替换) ,用法见 i\
d 删除匹配到的行
q 退出 sed , 不再对后续的文件内容进行处理
Q 同 q ,不同点在于,q 打印当前模式空间中的内容,而 Q 不打印直接退出
(通俗解释:q打印匹配到的行再退出,Q不打印,直接退出)
first~step 从第first 行开始,每隔 step 行打印一行
sed -n '2~3p' filename
输出:
bbbbbbb
eeeeeeee
iiiiiiiiiiii
llllllllllllll
$ 用于匹配最后一行
0,addr2 从开始匹配到 addr2, addr2 只能使用正则表达式配置,如果配置不到,则会打印整个文件
addr1,+N 从 addr1 匹配到之后的 N 行,addr1 可以使用正则表达式配置
addr1,~N 同上,但是之前的 N 行