layout: post
title: find 命令和sed命令练习
date: 2017-11-30
tags: [“Linux”,”字符处理和文件查找”]


  1. 1、查找/var目录下属主为root,且属组为mail的所有文件
    find /var/ -user root -group mail
    2、查找/var目录下不属于rootlpgdm的所有文件
    find /var -not ( -name root -a -name lp -a -name gdm )
    3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件
    find /var -mtime -7 ! -user root ! -user postfix
    4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
    find / ( -nouser -o -nogroup ) -atime -7
    5、查找/etc目录下大于1M且类型为普通文件的所有文件
    find /etc/ -size +1M -type f
    6、查找/etc目录下所有用户都没有写权限的文件
    find /etc ! -perm +222 -not -type l
    7、查找/etc目录下至少有一类用户没有执行权限的文件
    find /etc/ ! -perm 111 -type f
    8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
    find /etc/init.d -perm -122 ! -type l
    1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
    sed -nr s@^[[:blank:]]+@@g;p ./grub2.cfg 修改文件 sed -ir s@^[[:blank:]]+@@g ./grub2.cfg
    2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
    sed -nr s@^#[[:blank:]]+@@g;p /etc/fstab 修改文件 sed -i s@^#[[:blank:]]+@@g /etc/fstab
    3、在centos6系统/root/install.log每一行行首增加#号
    sed -nr ‘/^[^#]/s@^@#@g;p /root/install.log 修改文件 sed -i ‘/^[^#]/s@^@#@g /root/install.log
    4、在/etc/fstab文件中不以#开头的行的行首增加#号
    5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
    echo ‘/etc/fstab sed -nr s@(./)(.$)@\1@p 目录名
    echo ‘/etc/fstab sed -nr s@(./)(.$)@\2@p 基名
    6、利用sed 取出ifconfig命令中本机的IPv4地址
    ifconfig sed -nr 2s@^[[:blank:]]+inet[:blank:]{3}[0-9]{1,3}).+@\1@p
    7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
    ls /misc/cd/Packages/.rpm sed -r s/..(.+).rpm$/\1/‘ sort uniq -c
    8、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grepsed两种方法分别实现)
    cat /etc/init.d/functions grep -o “[[:alpha:]]{1,}“ sort uniq -c sort -rnk1
    cat /etc/init.d/functions grep -Eo “[[:alpha:]]+” sort uniq -c sort -rnk1
    sed -r s@[^[:alpha:]]+@\n@g /etc/init.d/functions sort uniq -c sed 1d sort -rnk1
    sed s/[^[:alpha:]]/\n/g /etc/init.d/functions sed ‘/^$/d sort uniq -c

 

文档更新时间: 2018-12-13 17:48   作者:张尚