三剑客应用sed

1、复制/etc/rc.d/rc.local 文件至/tmp目录,将/tmp/rc.sysinit文件中的
以至少一个空白字符开头的行的行首加#。
sed -n '/[[:space:]]/ s/^/#/p' rc.local
sed -n '/[[:space:]]\+/ s/^/#/p' rc.local
2、复制/boot/grub2/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符。
[[:space:]]:空格的意思
sed -n 's/^[[:space:]]\+//pg' rc.local
sed -n '/^[^ ]/p' rc.local
3、删除/tmp/rc.local t文件中的以#开头,且后面跟了至少一个空白字符的行的#和空白字符。
sed -inr 's/^#[[:space:]]+//pg' rc.local
sed -i 's/^#[[:space:]]+//g'
sed -rn '/^#[[:space:]]+/p' rc.local
4、为/tmp/grub.conf文件中前三行的行首加#号。
sed -i '1,3 s/^/#/'
5、将/etc/yum.repos.d/CentOS-Media.repo(随便找一个)文件中所有的enabled=0或gpgcheck=0的
最后的0修改为1
sed -nr '/enable/ s/(enabled=).*/\11/gp' /etc/yum.repos
sed -i '/enable/ s/0/1/g'
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202。
(* */4 * * *  cp /etc /backup etc-$(date -d "-1 days" + %F))
(date+%F)
7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402。
(* * * * 2,4,6 mv /var/log/messages /backup/messages_logs/messages-$(date -d "-1 days" + %F))
8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中。
(* */2 * * * grep "^S" /proc/meminfo > /stats/memory.txt)
9、工作日的工作时间内,每两小时执行一次echo“howdy”。
* */2 * * 1-5 echo "howdy"
10、创建目录/tmp./testdir-当前日期时间
mkdir /tmp./testdir-$(date +%F)
12、显示/etc/passwd文件中位于第偶数行的用户的用户名。
sed -n '2~2p' /etc/passwd
1、查找/var目录下属主为root,且属组为mail的所有文件
find /var -user root -o -user mail
find /var/ -user root -a -group mail -ls
2、查找/var目录下不属于root、lp、gdm的所有文件
find /var -not -user root -not -user lp -not -user gdm
find /var/ -not  \( -user root -o -user ip -o -user gdm  \)
3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件
find /var -mtime 7 -not -user root
find /var -mtime -7 -not -user root -ls
4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
find -atime 7 -nouser -a -nogroup .....
find /var/ -atime -7 -a -nouser -o -nogroup
5、etc查找/etc目录下大于1M且类型为普通文件的所有文件
find /etc -size +1M -a -type f
6、查找/etc目录下所有用户都没有写权限的文件
find /etc -perm 755
find /etc/ -not  \( -perm /222 \) -ls
7、查找/etc目录下至少有一类用户没有执行权限的文件
find /etc -perm 644
find /etc/ -not  \( -perm -111 \) -ls
8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
find /etc/init.d 772
find /etc/init.d/ -perm /111 -a -perm /222 -ls=============
9、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
sed -n '/^[^ ]/p'
10、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -n 's/[[:space:]+]//pg' /etc/fstab
11、在centos6系统/root/install.log每一行行首增加#号
sed -n 's/^/#/' /root/install.log
12、在/etc/fstab文件中不以#开头的行的行首增加#号
grep -v  "^#" | sed -n 's/^/#/' /etc/fdisk
sed -r '/^[^#]/ s/^/#/g'
13、处理/etc/fstab路径,使用sed命令取出其目录名和基名
 echo "/etc/fstab" | sed -r 's#.*/(.*)#\1#g'
echo "/dev/mapper/centos-swap" | sed -r 's#(.*/){2}.*#\1#g'
14、利用sed 取出ifconfig命令中本机的IPv4地址
ifconfig | sed -n '/broadcast/p' |sed 's/^.*inet//g' | sed 's/netmask.*$//'
15、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
awk -F'.'  '/rpm/{print $1}' | sort | uniq -c
sed -r '#.*\.(.*)\.rpm#\1#g' |sort|uniq -c
16、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
cat /etc/init.d/functions |sed -r ‘s/[^[:alpha:]]+/\n/g’|sed ‘/^$/d’ |sort|uniq -c
cat /etc/init.d/functions |grep -o “[[:alpha:]]\{2,\}”|sort|uniq -c
17、将文本文件的n和n+1行合并为一行,n为奇数行
sed -n 'N;s/\n//p' /etc/passwd

猜你喜欢

转载自www.cnblogs.com/123456likun/p/11470905.html