sed命令
sed命令有两种格式
sed [选项] '操作' 参数 sed [选项] -f scriptfile 参数
“参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号“,”分隔;而scriptfile表示脚本文件,需要用-f选项指定,表示通过指定的脚本文件来处理输入的目标文件。
选项
常见的sed命令选项包含以下几种: -e或-expression=:表示用指定命令或者脚本来处理输入的文本文件 -f或-file-:表示用指定的脚本文件来处理输入的文件文件 -h或--help:显示帮助 -n、-quite或silent:表示仅表示处理后的结果 -i:直接编辑文本文件
“操作”用于只当对文件操作的动作行为,也就是sed的命令。通常情况下是采用“[n1[n2]]”操作参数的格式。n1、n2是可选的,代表选择进行操作的行数
a:增加,在当前行下面增加一行指定内容。 c:替换,讲选定行替换为指定内容。 d:删除,删除选定的行。 i:插入,在选定行上面插入一行指定内容。 p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容,如果又非打印字符,则以ASCLL码输出。通常与“-n”选项一起使用。 s:替换,替换指定字符 y:字符转换
1、输出第三行内容

2、输出3-5行内容

3、输出第三和第五行

4、sed -n '1,5{1~2p}' borke.log #输出1-5的奇数行
sed -n '1,5{2~2p}' broke.log #输出1-5的偶数行

5、从第3行开始,连续进行输出即输出3-8行的内容

sed结合正则表达式输出指定行
sed 命令结合正则表达式时,格式略有不同,正则表达式以“/”包围。注:如果遇到特殊符号的情况,扩展正则还需要转义字符“\”。
包含shang的行

输出包含shang的行所在的行号,用(=)来输出行号

输出shang开头的行

删除符合条件的文本:
nl test.txt | sed '3d' 或者 sed '3d' test.txt 或者sed -i '3d' test.txt -i会对文本直接进行修改 删除第三行

#删除带有shang字符的行,

插入符合条件的行
在第三行的上一行添加 shang hai is color world

sed '/shang/i beijing' test.txt #在含有shang的行的上一行添beijing

sed '/shang/a beijing' test.txt #在含有shang的行的下一行添beijing

将所有a替换为A

将第3行将第一个a替换为A

立志如山 静心求实
浙公网安备 33010602011771号