练习题之文本处理工具及正则表达式
2016-08-08 23:14
471 查看
1、找出ifconfig命令结果中本机的所有IPv4地址。
11、找出“netstat -tan”命令的结果中以“LISTEN”后跟任意多个空白字符结尾的行
[root@liang ~]# ifconfig #centos6下 eth0 Link encap:Ethernet HWaddr 00:0C:29:BA:F9:36 inet addr:192.168.99.99 Bcast:192.168.99.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feba:f936/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3670 errors:0 dropped:0 overruns:0 frame:0 TX packets:2963 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:341489 (333.4 KiB) TX bytes:354417 (346.1 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:600 (600.0 b) TX bytes:600 (600.0 b) [root@fengl ~]# ifconfig #centos7下 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.99.100 netmask 255.255.255.0 broadcast 192.168.99.255 inet6 fe80::20c:29ff:fe01:b00c prefixlen 64 scopeid 0x20<link> ether 00:0c:29:01:b0:0c txqueuelen 1000 (Ethernet) RX packets 2804 bytes 242061 (236.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1855 bytes 201673 (196.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 852 bytes 68852 (67.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 852 bytes 68852 (67.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 方法一: [root@liang ~]# ifconfig | grep Mask | tr -s ' '|cut -d' ' -f3|cut -d':' -f2 #centos6下 [root@fengl ~]# ifconfig | grep netmask | tr -s ' '|cut -d' ' -f3 #centos7下 方法二(通用): [root@fengl ~]# ifconfig | grep -E -o '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'2、查出分区空间使用率的最大百分比值。
[root@liang ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 41153856 2146548 36910156 6% / tmpfs 953140 0 953140 0% /dev/shm /dev/sda1 1998672 40260 1853556 3% /boot [root@liang ~]# df | tr -s ' '|cut -d ' ' -f 5|tr -d %|sort -n|tail -13、查出用户UID最大值的用户名、UID及shell类型
[root@fengl ~]# getent passwd | sort -t : -k 3 -n | cut -d : -f 1,3,7|tail -14、查出/tmp的权限,以数字方式显示
[root@fengl ~]# stat /tmp File: ‘/tmp’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 802h/2050d Inode: 786433 Links: 7 Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:tmp_t:s0 Access: 2016-07-11 19:00:12.017347722 +0800 Modify: 2016-08-08 18:58:01.445117085 +0800 Change: 2016-08-08 18:58:01.445117085 +0800 Birth: - [root@fengl ~]# stat /tmp | head -4|tail -1|cut -d '(' -f2|cut -d '/' -f15、统计当前连接本机的每个远程主机IP的连接数,并按大到小排序。
[root@fengl ~]# netstat -nt|grep tcp|tr -s ' '|cut -d ' ' -f 5|cut -d : -f 1|uniq -c|sort -nr6、显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方式)
[root@fengl ~]# cat /proc/meminfo |grep -i ^s #方法1 [root@fengl ~]# cat /proc/meminfo |grep -E '^s|^S' #方法2 [root@fengl ~]# cat /proc/meminfo |grep '^[sS]' #方法37、显示/etc/passwd文件中不以/bin/bash结尾的行
[root@fengl ~]# cat /etc/passwd | grep -v '/bin/bash$'8、显示用户rpc默认的shell程序
[root@fengl ~]# cat /etc/passwd | grep '^rpc\>'|cut -d : -f 79、找出/etc/passwd中的两位或者三位数
[root@fengl ~]# grep -E '\<[1-9][0-9]\>|\<[1-9][0-9]{2}\>' /etc/passwd10、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行
[root@fengl ~]# grep '^[[:space:]]\+[^[:space:]]' /etc/grub2.cfg [root@fengl ~]# grep -E '^[[:space:]]+[^[:space:]]' /etc/grub2.cfg
11、找出“netstat -tan”命令的结果中以“LISTEN”后跟任意多个空白字符结尾的行
[root@fengl ~]# netstat -tan | grep 'LISTEN[[:space:]]*$'12、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名的行
[root@fengl home]# cat /etc/passwd |grep '^\<\(.*\)\>.*\b\1\b$'13、显示三个用户root、mage、wang的UID和默认shell
[root@fengl home]# grep -E '^(root|mage|wang)' /etc/passwd | cut -d: -f3,714、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行
[root@fengl home]# grep '^\<[[:alpha:]_]\+\>()' /etc/rc.d/init.d/functions15、使用egrep取出/etc/rc.d/init.d/functions中的基名
[root@fengl home]# echo "/etc/rc.d/init.d/functions" | grep -E -o '[^/]+/?$'16、使用egrep取出/etc/rc.d/init.d/functions的目录名
[root@fengl home]# echo "/etc/rc.d/init.d/functions" | grep -E -o '^/.*/'17、统计以root身份登录的每个远程主机IP地址的登录次数
[root@fengl ~]# last | grep -E -o "^root\>.*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))" | tr -s ' '|cut -d ' ' -f3|uniq -c18、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示
[root@liang6 /]# cat /etc/init.d/functions | tr -cs '[:alpha:]' '\n'|sort|uniq -c|sort -t' ' -k1 -nr19、从文件haoma里正则表达式表示身份证号
[root@liang6 /]# grep -E '\b[1-9][0-9]{5}(18|19|20)[0-9]{2}(0[1-9]|1(0-2))(0[1-9]|[12][0-9]|3[0-1])[0-9]{3}[0-9X]\b' haoma20、从文件haoma里使用正则表达式表示手机号
[root@liang6 /]# grep -E "\b(\+86)?1[38][0-9]{9}|14[57][0-9]{8}|15[0-35-9][0-9]{8}|17[0678][0-9]{8}\b" haoma21、从文件haoma里正则表达式表示邮箱
[root@liang6 /]# grep -E '\b[[:alnum:]][[:alnum:]_-]*@[[:alnum:]][[:alnum:]\._-]*\b' haoma22、从文件haoma里正则表达式表示QQ号
[root@liang6 /]# grep -E '\b[1-9][0-9]{4,11}\b' haoma
相关文章推荐
- Linux的文本处理工具及grep正则表达式的使用
- Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式
- Linux练习题-文本管理工具及正则表达式
- Linux 文本处理工具、grep、正则表达式
- 字符及文本处理之正则表达式:Linux/Unix工具与正则表达式的POSIX规范
- 关于 文本处理工具、正则表达式、grep 的简单举例
- 基本正则表达式和文本处理工具之grep、egrep和fgrep
- Linux学习第七课-文本处理工具及正则表达式
- 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式
- 正则表达式搭配js轻松处理json文本方便而老古
- 工具介绍:EditPad Pro 7——复制匹配正则表达式文本的工具
- Linux---文本处理(正则表达式,grep,awk,sed)
- R语言进阶之二:文本(字符串)处理与正则表达式
- 文本查找工具grep的使用(含正则表达式用法)
- R语言:文本(字符串)处理与正则表达式
- Python实现的正则表达式文本查找工具
- 文本处理三剑客--grep笔记以及正则表达式
- 文本查找工具grep及正则表达式的使用
- 文本查找工具grep,正则表达式,扩展表达式
- Perl语言入门-第九章-用正则表达式处理文本-习题