使用php做的学校网站,建行网站用户名是什么,网站建设案例怎么样,智慧团建团员登录入口linux 之sed用法大全
sed详细用法
1. sed的作用
sed是Stream Editor#xff08;流编辑器#xff09;的缩写#xff0c;简称流编辑器#xff1b;主要用来处理文本的。跟awk、grep合起来成为linux三驾马车。
sed是一行一行读取文件内容并按照要求进行处理#xff0c;把处…linux 之sed用法大全
sed详细用法
1. sed的作用
sed是Stream Editor流编辑器的缩写简称流编辑器主要用来处理文本的。跟awk、grep合起来成为linux三驾马车。
sed是一行一行读取文件内容并按照要求进行处理把处理后的结果输出到屏幕
2. 命令行格式
sed [options] ‘处理动作’ 文件名
3. sed常用选项
选项说明备注-r使用正则表达式常用-i直接编辑文件会生效常用-n取消默认输出 采用静默的方式-e进行多项编辑-f指定sed脚本的文件名
4. 常见处理动作
常见的处理命令类似于数据库中的增删改查
动作说明备注s搜索并替换 searchsed 选项 ‘s/搜索的内容/替换的内容/动作’ 需要处理的文件重点p打印 printi在指定行之前插入内容 inserta在指定行之后插入内容append追加c替换指定行的所有内容 replaced删除指定行 deleteg全局作用 global 本行中所有匹配均替换否则只替换第一个
#---------打印-----------
sed -n p b.txt 打印每一行并取消默认输出
sed -n 1p b.txt 打印第1行
sed -n 1,5p a.txt 打印1到5行
sed -n $p a.txt 打印最后1行
#---------追加-----------
sed $a123 a.txt 文件最后一行下面增加内容
sed a123 a.txt 文件每行下面增加内容
sed 5a123 a.txt 文件第5行下面增加内容
sed $i123 a.txt 文件最后一行上一行增加内容
sed i123 a.txt 文件每行上一行增加内容
sed 6i123 a.txt 文件第6行上一行增加内容
sed /^adm/ihello 以adm开头行的上一行插入内容
#------------删除----------
sed 1d a.txt 删除文件第1行
sed 1,5d a.txt 删除文件1到5行
sed $d a.txt 删除文件最后一行
#------------替换-------------
c 替换指定的整行内容
sed 5chello world a.txt 替换文件第5行内容
sed chello world a.txt 替换文件所有内容
sed 1,5chello world a.txt 替换文件1到5号内容为hello world
sed /^daemon/c888888 a.txt 替换以user01开头的行sed s/root/ROOT/p 1.txt 将root换成ROOT并打印
sed s/root/ROOT/gp 1.txt 将本行中所有root替换为ROOT并打印
sed s/^#//gp 1.txt 去掉行首的#并打印
sed s/sbin/nologinitcastgp a.txt 使用符号代替/进行匹配
sed s/\/sbin\/nologin/itcast/gp a.txt 跟上一句语句作用一样使用了转义字符
sed 10s#/sbin/nologin#itcast#p a.txt 对第十行中的进行替换并打印5. 其他命令
命令解释备注r从另外文件中读取内容w内容另存为保存查找串以便在替换串中引用打印行号取反q退出
sed 3r /etc/hosts 2.txt
sed $r /etc/hosts 2.txt
sed /root/w a.txt 2.txt
sed /[0-9]{4}/w a.txt 2.txt
sed -r /([0-9]{1,3}\.){3}[0-9]{1,3}/w b.txt 2.txt
sed 1!p 1.txt
sed 1,17!p 1.txt
sed /root/p a.txt
sed s/root/#/p a.txt
sed s/^root/#/p passwd 注释掉以root开头的行
sed -r s/^root|^stu/#/p /etc/passwd 注释掉以root开头或者以stu开头的行
sed 1,5s/^[a-z].*/#/p passwd 注释掉1~5行中以任意小写字母开头的行
sed 1,5s/^/#/p /etc/passwd 注释1~5行sed -n 1,5s/^/#/p 1.txt 注释1~5行
sed -n 1,5s/\(^\)/#\1/p 1.txt 注释1~5行6.综合运用
sed -ne /root/p 1.txt -ne /root/ # 是打印行号先查找再打印行号
root:x:0:0:root:/root:/bin/bash
1
sed -ne /root/ -ne /root/p 1.txt 先打印行号再查找
1
root:x:0:0:root:/root:/bin/在1.txt文件中的第5行的前面插入“hello world”;在1.txt文件的第8行下面插入“猫猫猫”sed -e 5ihello world -e 8a猫猫猫 1.txt -e 5;8sed -n 1,5p 1.txt
sed -ne 1p -ne 5p 1.txt
sed -ne 1p;5p 1.txt过滤vsftpd.conf文件中以#开头和空行grep -Ev ^#|^$ /etc/vsftpd/vsftpd.conf
sed -e /^#/d -e /^$/d /etc/vsftpd/vsftpd.conf
[sed /^#/d;/^$/d /etc/vsftpd/vsftpd.conf
sed -r /^#|^$/d /etc/vsftpd/vsftpd.conf过滤smb.conf文件中生效的行
sed -e /^#/d -e /^;/d -e /^$/d -e /^\t$/d -e /^\t#/d smb.conf
sed -r /^(#|$|;|\t#|\t$)/d smb.conf sed -e /^#/d -e /^;/d -e /^$/d -e /^\t$/d -e /^\t#/ smb.confgrep ^[^a-z] 1.txtsed -n /^[^a-z]/p 1.txt过滤出文件中的IP地址
grep -E ([0-9]{1,3}\.){3}[0-9]{1,3} 1.txt
192.168.0.254
sed -nr /([0-9]{1,3}\.){3}[0-9]{1,3}/p 1.txt
192.168.0.254过滤出ifcfg-eth0文件中的IP、子网掩码、广播地址
grep -Eo ([0-9]{1,3}\.){3}[0-9]{1,3} ifcfg-eth0
10.1.1.1
255.255.255.0
10.1.1.254sed -nr /([0-9]{1,3}\.){3}[0-9]{1,3}/p ifcfg-eth0|cut -d -f2
10.1.1.1
255.255.255.0
10.1.1.254sed -nr /([0-9]{1,3}\.){3}[0-9]{1,3}/p ifcfg-eth0|sed -n s/[A-Z]//gp
10.1.1.1
255.255.255.0
10.1.1.254ifconfig eth0|sed -n 2p|sed -n s/[:a-Z]//gp|sed -n s/ /\n/gp|sed /^$/d
10.1.1.1
10.1.1.255
255.255.255.0ifconfig | sed -nr /([0-9]{1,3}\.)[0-9]{1,3}/p | head -1|sed -r s/([a-z:]|[A-Z/t])//g|sed s/ /\n/g|sed /^$/difconfig eth0|sed -n 2p|sed -n s/.*addr:\(.*\) Bcast:\(.*\) Mask:\(.*\)/\1\n\2\n\3/p
10.1.1.1
10.1.1.255
255.255.255.0-i 选项 直接修改原文件
sed -i s/root/ROOT/;s/stu/STU/ 11.txt
sed -i 17{s/YUNWEI/yunwei/;s#/bin/bash#/sbin/nologin#} 1.txt
sed -i 1,5s/^/#/ a.txtsed结合正则使用
sed 选项 ‘sed命令或者正则表达式或者地址定位’ 文件名
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。 如果没有指定地址sed将处理输入文件的所有行。 正则 说明 备注 /key/ 查询包含关键字的行 sed -n ‘/root/p’ 1.txt /key1/,/key2/ 匹配包含两个关键字之间的行 sed -n ‘/adm/,/mysql/p’ 1.txt /key/,x 从匹配关键字的行开始到文件第x行之间的行包含关键字所在行 sed -n ‘/^ftp/,7p’ x,/key/ 从文件的第x行开始到与关键字的匹配行之间的行 x,y! 不包含x到y行 /key/! 不包括关键字的行 sed -n ‘/bash$/!p’ 1.txt 补充扩展总结
1、正则表达式必须以”/“前后规范间隔
例如sed ‘/root/d’ file 例如sed ‘/^root/d’ file
2、如果匹配的是扩展正则表达式需要使用-r选来扩展sed
对于grep是grep -E或者egrep 对于sed是sed -r
注意 在正则表达式中如果出现特殊字符(^$.*/[]),需要以前导 “” 号做转义
3、逗号分隔符
sed 5,7d file 删除5到7行
sed /root/,/ftp/d file 删除第一个匹配字符串root到第一个匹配字符串ftp的所有行本行不找 循环执行4、组合方式
sed 1,/foo/d file 删除第一行到第一个匹配字符串foo的所有行
sed /foo/,4d file 删除从匹配字符串”foo“开始到其后四行为止的行
sed /foo/,~3d file 删除从匹配字符串”foo“开始删除到3的倍数行文件中
sed 1~5d file 从第一行开始删每五行删除一行
sed -nr /foo|bar/p file 显示配置字符串foo或bar的行
sed -n /foo/,/bar/p file 显示匹配从foo到bar的行
sed 1~2d file 删除奇数行
sed 0-2d file 删除偶数行 sed 1~2!d file
sed $d file 删除最后一行
sed 1d file 删除第一行
sed s/.// a.txt 删除每一行中的第一个字符
sed s/.//2 a.txt 删除每一行中的第二个字符
sed s/.$// a.txt 删除每一行中的最后一个字符