Linux 三剑客 - sed 命令的使用笔记

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 替换

如上图