find 命令和sed命令练习

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