其他分享
首页 > 其他分享> > 三剑客随手练习

三剑客随手练习

作者:互联网

1、找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写

 

[root@localhost ~]# grep -E '^[sS]' /proc/meminfo 
[root@localhost ~]# sed -r -n '/^[sS]/p' /proc/meminfo
[root@localhost ~]# awk '/^[sS]/{print $0}' /proc/meminfo
[root@localhost ~]# grep -iE '^s' /proc/meminfo 

 

2、显示当前系统上的以root,centos或者user开头的信息

[root@localhost ~]# grep -rE '^(root|centos|user)' /etc/

 

3、找出/etc/init.d/functions文件下包含小括号的行

[root@localhost ~]# grep -E '\(|\)' /etc/init.d/functions

 

4、输出指定目录的基名

[root@localhost /etc/sysconfig]# pwd | awk -F/ '{print $NF}'

 

5、找出网卡信息中包含的数字

[root@localhost /etc/sysconfig]# grep -oE '[0-9]+' /etc/sysconfig/network-scripts/ifcfg-ens3[23]

 

6

、找出/etc/passwd下每种解析器的用户个数

{"bash": 10, "sh": 9, "zsh": 1}
数组
[root@localhost /etc/sysconfig]# awk -F: '{arr[$NF]++}END{for(i in arr){print i,arr[i]}}' /etc/passwd

7、获取网卡中的ip,用三种方式实现

[root@localhost /etc/sysconfig]# ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
[root@localhost /etc/sysconfig]# ip a | sed -r -n '/([0-9]{1,3}\.){3}[0-9]{1,3}/p'
[root@localhost /etc/sysconfig]# ip a | awk '/([0-9]{1,3}\.){3}[0-9]{1,3}/{if(NR==3){print $2}else{print $2,$4}}'

 

8、搜索/etc目录下,所有的.html或.php文件中main函数出现的次数

[root@localhost ~]# grep -rE 'main' `find /etc/ -name "*.html" -o -name "*.php" | xargs ` | wc -l

 

9、过滤掉php.ini中注释的行和空行

[root@localhost ~]# yum install php php-devel
[root@localhost ~]# grep -vE '^\ *;|^$' /etc/php.ini

10、找出文件中至少有一个空格的行

[root@localhost ~]# grep -E '\ +' /etc/php.ini

 

11、过滤文件中以#开头的行,后面至少有一个空格

[root@localhost ~]# grep -E '^#\ +' /etc/fstab 

 

12、查询出/etc目录中包含多少个root

[root@localhost ~]# grep -roE 'root' /etc/ | wc -l

 

13、查询出所有的qq邮箱

[root@localhost ~]# grep -E '[0-9a-zA-Z-_]+@qq\.com'

 

14、查询系统日志中所有的error

[root@localhost ~]# grep -E 'error' /var/log/messages

 

15、删除某文件中以s开头的行的最后一个词

[root@localhost ~]# grep -Ei '^s' 11.txt | grep -oE '[0-9a-zA-Z]+' | xargs | awk '{for(i=0;i<(NF-1);i++){print $i}}'

 

16、删除一个文件中的所有数学

[root@localhost ~]# sed -r 's/[0-9]//g' 11.txt 

 

17、显示奇数行

[root@localhost ~]# awk -F: 'NR%2==1{print $0}' /etc/passwd

 

18、删除passwd文件中以bin开头的行到nobody开头的行

[root@localhost ~]# sed -r '/^bin/,/^nobody/d' /etc/passwd

 

19、从指定行开始,每隔两行显示一次空行

[root@localhost ~]# awk -F: '{n=5;if(NR<n){print $0}else{if((NR-5)%2==0){print "---"};print $0}}' /etc/passwd

 

20、每隔5行打印一个空行

[root@localhost ~]# awk -F: '{if(NR%5==0){print " "}; print $0}' /etc/passwd

 

21、不显示指定字符的行

[root@localhost ~]# grep -vE 'g' 2.txt

 

22、将文件中1到5行中aaa替换成AAA

[root@localhost ~]# sed -r '1,5s/aaa/AAA/g' 13.txt

 

23、显示用户id为奇数的行

[root@localhost ~]# awk -F: '$3%2==1{print $0}' /etc/passwd

 

24、显示系统普通用户,并打印系统用户名和id

[root@localhost ~]# awk -F: '$3>=1000{print $1, $3}' /etc/passwd

 

25、统计nginx日志中独立用户数(ip维度计算)

[root@localhost ~]# awk '/([0-9]{1,3}\.){3}[0-9]{1,3}/{arr[$1]++}END{for(i in arr){print i}}' access.log

 

26、统计php.ini中每个词的个数

[root@localhost ~]# grep -oE '[0-9a-zA-Z]+' /etc/php.ini | awk '{arr[$1]++}END{for(i in arr){printf "%-15s | %-5d\n", i, arr[i]}}'

 

 

标签:随手,练习,etc,awk,print,grep,root,localhost,三剑客
来源: https://www.cnblogs.com/fkzxps/p/15725322.html