天津网架公司,昆山网站排名优化,互联网营销策划,郑州营销型网站设计运营使用方式#xff1a;
1#xff0c;前置指令 | sed 选项 定址符指令
2#xff0c;sed 选项 定址符指令 被处理文档
选项#xff1a;
-n 屏蔽默认输出 -i写入文件 -r支持扩展正则
指令#xff1a;
p输出 d删除 s替换 sed -n 1p user //输出第1行 sed -n…使用方式
1前置指令 | sed 选项 定址符指令
2sed 选项 定址符指令 被处理文档
选项
-n 屏蔽默认输出 -i写入文件 -r支持扩展正则
指令
p输出 d删除 s替换 sed -n 1p user //输出第1行 sed -n 2p user //输出第2行 sed -n 3p user //输出第3行 sed -n 2,4p user //输出第2~4行 sed -n 2,1p user //输出第2行以及后面1行 sed -n 2p;4p user //输出第2行第4行 sed -n /^root/p user //在sed中使用正则表达式输出以root开
头的行 grep ^root user //效果同上 egrep^root|^bin user //找root或者bin开头的行 sed -nr /^root|^bin/p user //在sed中查找-r使用扩展正
则效果同上 sed -n user //查看所有行号 sed -n $ user //查看最后一行的行号相当于查看文档
总共有几行 sed 1d user //删第1行 sed d user //删所有 sed 3d user //删第3行 sed 2,5d user //删2~5行 sed 4,2d user //删4行以及后面2行 sed 1d;3d user //删第1行第3行
sed $d user //删除最后一行 sed -n $p user //查看最后一行
sed -n 1!p user //查看除了第1行以外的行, !代表取反 sed中的替换使用 s/old/new/
vim test.txt //准备素材,写入下列内容
2017 2011 2018
2017 2017 2024
2017 2017 2017 sed s/2017/8888/ test.txt //替换所有行的第1个2017为8888
sed 1s/2017/8888/ test.txt //替换第1行的第1个2017
sed 2s/2017/8888/ test.txt //替换第2行
sed 1,2s/2017/8888/ test.txt //替换1~2行
sed s/2017/8888/2 test.txt //替换所有行的第2个2017
sed s/2017/8888/3 test.txt //替换所有行的第3个2017
sed /2011/s/2017/8888/ test.txt //替换有2011的行的第1个2017
sed s/2017/8888/g test.txt //替换所有行的所有个 sed -n s/root/6666/p /etc/passwd //替换每行第1个root并只显示被替换的行
sed -n s/root/6666/2p /etc/passwd //替换每行第2个root并只显示被替换的行
sed -n s/root/6666/gp /etc/passwd //替换每行的所有root
sed 3s/2017/8888/;3s/2017/8888/ test.txt //替换第3行的第1个和第2个2017
------------------------------------------------------------
尝试将user文档中的/bin/bash替换成/sbin/sh
sed s//bin/bash//sbin/sh/ user //常规手段替换内容会与替换冲突替换失败
sed s/\/bin\/bash/\/sbin\/sh/ user //使用\转义符号可以成功但不方便
sed s!/bin/bash!/sbin/sh! user //更改替换的间隔符号是最理想方法
sed s(/bin/bash(/sbin/sh( user //效果同上 Sed中s替换的高级应用
1删除文件中每行的第二个、最后一个字符
sed s/.//2;s/.$// test 分两个步骤完成中间用分号
隔开第一步将每行的第二个任意字符替换成空第二
步将每行的最后一个任意字符替换成空即可 2删除文件中所有的数字
sed -i s/[0-9]//g test 先找到任意数字然后都替换成空 3将文件中每行的第一个、倒数第1个字符互换
echo abc abc //创建素材
sed -r s/(a)(b)(c)/\3\2\1/ abc //替换abc时复制每一个字符后面替换的内容用\数字粘贴可以任意调换位置
echo xyz abc //追加内容
sed -r s/(a)(b)(c)/\3\2\1/ abc //再用之前的方法无法替换第2行
sed -r s/(.)(.)(.)/\3\2\1/ abc //将具体字符用 . 替代即可将文档中的xyz修改成xyaz时上述方案失灵
sed -r s/^(.)(.*)(.)$/\3\2\1/ abc //再次升级分别找到第1个字符和最后1个字符中间可以是任意
sed -r s/^(.)(.*)(.)$/\3\2\1/ test //达成需求 4为文件中每个大写字母添加括号
sed -r s/([A-Z])/(\1)/g test //先找到任意大写字母然后保留最后替换成带括号的状态 练习
编写脚本安装httpd服务使用82号端口
#!/bin/bash
yum -y install httpd
sed -i /^Listen 80/s/80/82/ /etc/httpd/conf/httpd.conf //找到有Listen 80开头的行替换80为82
systemctl restart httpd 运行脚本之后使用curl 192.168.4.7:82测试或者火狐浏览器192.168.4.7:82
要关闭selinux与防火墙
setenforce 0 //如果脚本执行之前没关闭selinux会报错
systemctl stop firewalld
--------------------------------------------------------------------
sed中除了常用的p d s 三个指令还有a行下追加 i行上添加 c替换整行
sed a 666 user //在所有行下追加666
sed 1a 666 user //第1行下追加666
sed i 666 user //所有行上添加666
sed 3i 666 user //第3行上添加666
sed 2a 666 user //第2行下追加666
sed c 666 user //所有行替换成666
sed /root/c 666 user //找到有root的行替换成666 编写脚本找到系统使用bash的账户名然后按照“用户名 -- 密码” 的格式存储在一个文件中 \s可以匹配tab键和空格所敲出来的空格。
\w匹配数字、字母、下划线 sed的其它指令
”a“行下追加逐行处理如果只处理第一行就用”1a“
”i“行上添加
”c“替换整行