sed 命令的使用笔记

man sed

sed 的格式

用法

sed [选项]... {脚本 (如果没有其他脚本)} [输入文件]

SYNOPSIS

sed [-Ealn] command [file ...]
sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]

备注

如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为
sed 脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准
输入读取数据

举例

$ sed 4a\newline testfile
没有-e, --expression, -f 或 --file, 4a\newline 是第一个非选项参数, 被视为脚本;
testfile 被视为输入文件

$nl /etc/passwd | sed '2,5d'
如果没有输入文件,那么程序将从标准输入读取数据: nl /etc/passwd
如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为 sed 脚本: '2,5d'

nl tset.sh |sed -n -e '/hello/{s/hello/bluehello/;p;q}'
-n -e 是选项
''框起来的是脚本
{}框起来的是动作
s, p, q 都是动作,用;号分隔

nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
-e 表示多点编辑,第一个编辑命令删除/etc/passwd 第三行到末尾的数据,第二条命令搜索 bash 替换为 blueshell。

命令解析

选项

-n 输出脚本处理后的结果

$ nl /etc/passwd | sed -n '5,7p'

动作

q 退出

nl tset.sh |sed -n '/hello/{s/hello/bluehello/;p;q}'

s 替换

如上图


↙↙↙阅读原文可查看相关链接,并与作者交流