Linux shell入门基础(八),linuxshell入门基础


八、shell脚本sed&awk01.sed的使用流编辑器-Steam Editor#ed /etc/passwd1,10p……1s/root/byf/p(替换root为byf)#sed -e 's/root/byf/g' /etc/passwd(功能同上)只是显示出来的内容更改#sed -e 's/root/byf/g' /etc/passwd > /tmp/a#cp /tmp/a /etc/passwd#sed -n -e '/\<byf\>/p(打印包含byf单词的行)' /etc/passwd#sed -n -e '/\<byf\>/d(删除包含byf单词的行)' /etc/passwd#sed -e '/\<byf\>/s/bash/nologin/g' /etc/passwd > /tmp/a#cp /tmp/a /etc/passwd(文件替换,相当于修改passwd文件)#vi /etc/squid/squid.f#sed -e '/^#/d' -e '/^$/d' /etc/squid/squid.conf |wc -l(删除#注释行,和以空格开始的行,快速的显示有用的行)#sed -e '/bash/s/byf/root/g' /etc/passwd(修改包含bash行的root为byf)多次替换#sed -e '' -e ''#sed -e '::(冒号隔开命令)'#sed -e '1~2'(执行第1,3,5,……)步长为2#sed -e 's/root/byf/' -e 's/bash/nologin' /etc/passwd#vi ssss/root/byfs/bash/nologin#sed -f sss /etc/passwd(结果同上-e '' -e '')#vi sss#!/bin/sed -fs/root/byfs/bash/nologin#chmod a+x sss#./sss /etc/passwd02.awk的使用#man sed#info sed(查看sed的信息功能)(可以查看到sed的相关例子,*点击enter跳转到指定的sed实例)sed可以处理行的内容awk可以处理列的内容#chkconfig --list |awk '{print $5}'3:off3:off3:on……#chkconfig --list | awk '$1=="httpd" {print $5}'3:on#if [chkconfig --list | awk '$1="httpd"{print $5}' = "3:on"]; then echo ok; fiok#chkconfig --list |awk '{print $1 " on level "$5}' | head#chkconfig --list | awk 'BEGIN {iii=0}{if ($5=="3:on")iii=iii+1}END{[print iii}'#awk 'BEGIN {iii=0}{if ($7=="/bin/bash")iii=iii+1}END {print iii}' < /etc/passwd#awk -F(以什么作为分隔符,此处为':'): '{print $1 "UID is "$3}' /etc/passwd写入脚本#vi aaaBEGIN{iii=0}{if ($5=="3:on")iii=iii+1}END{print iii}:wq#chkconfig --list | awk -f aaa日志分析的时候可能会用到awk

相关内容