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 替换
如上图