1 使用sed格式:
1.1 命令行格式:
sed 参数 命令输入的文件 (参数有-e和-n,-e一般用于调用两个命令,-n一般用于匹配p的命令意思是打印相关的行) (命令由行定位既正则+sed命令即操作)
1.2 脚本格式:
sed -f参数 脚本文件 输入的文件
2 查看打印的行号:
nl 文件 | sed -n 要打印的行
3 Sed的行定位:
3. 1定位一行:x行号
如 sed -n ’要打印的行数如10p’ 文件 最后是打印出了第十行
/pattern/正则
如sed -n ’/要打印的行的开头表达式如mooc/p’ 文件 最后是打印出了你想要打印的行
3.2 定位多行:x,y都是行号,意思是从x行到y行,
如nl 文件 | sed -n ’ 要打印的行如10,20p‘ 最后是打印出了第十行到第二十行
4 /pattern/,x
如nl 文件 | sed -n ’要打印的第一行的开头表达式如mooc/,/要打印的最后一行的开头表达式如root/p’ 最后是打印出了你想打印的第mooc行到root行
5 x,y! 反向定位多行
5.1 如nl 文件 | sed -n ’不打印的行数如10!p’ 最后是打印出了除了第十行的所有行
5.2 如nl 文件 | sed -n ’不打印的第几行如10,到不打印的第几行如20!p’ 最后是打印出除了第十行到第二十行的所有行
6 定位间隔几行:first-step 从第几行跳到第几行
如nl 文件 | sed -n ’第几行跳到第几行如1 ~2p’ 最后是从第一行跳到第三行的顺序打印出全部
7 - p打印相关的行如(一定要配合-n使用)
8 - a新增行
8.1 nl 文件 | sed ’从第几行后面要增加的内容如5a////////’ 结果是在第五行的后面增加了一行///////////
8.2 nl 文件 | sed ’从第几行到第几行后面要增加的内容如1,5a》》》》’ 结果是从第一行到第五行每一行后面都增加一行》》》》
9 - i插入行
9.1 nl 文件 | sed ’从第几行前面插入内容如8i#######’ 结果是从第八行前面插入一行#########
9.2 nl 文件 | sed ’从第几行到第几行前面要插入的内容如1,3i&&&&’ 结果是从第一行到第三行每一行前面都插入一行&&&&
10 -c替代行
10.1 nl 文件 | sed ’你要替换哪一行以及替换的内容如[email protected]@@’ 结果是你把第二行替换成了一行@@@
10.2 nl 文件 | sed ’你要替换从第几行到第几行以及替换的内容如1,6c¥¥¥’ 结果是你从第一行到第六行都替换成了一行¥¥¥ (这里的替换只会把你要替换的第几行到第几行替换成一行)
11 -d删除行
nl 文件 | sed ’你要删除的那一行如/mooc/d’ 结果是你删除了以mooc为开头表达式的那一行
案例一:优化服务器配置 在ssh的配置文件加入相应的文本
sed ’$a\要空的空格要增加的第一行内容 \n要空的空格要增加的第二行内容’ 配置文件名
案例二:文本的处理 删除文本中的空行
sed ’/^$/d’ 文本名
案例三:服务器日志处理 服务器log中找出error报错
sed -n ’/要找的内容如Error/p’ 日志名
12 -s替换 替换文件中的内容
sed ’s/替换前的内容/替换后的内容/’ 文件名 替换内容时会替换所有符合的内容,而替换字符时只会替换第一个符合的字符所以后面要加上-g
13 -g全局替换的标志
替换文件中的字符 sed ’s/替换前的字符/替换后的字符/g’ 文件名