7-3.文件处理工具之egrep案例分析

Posted studywen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7-3.文件处理工具之egrep案例分析相关的知识,希望对你有一定的参考价值。

1.显示三个用户root、 mage、 wang的UID和默认shell

案例思路
分析:使用^和|匹配出三个用户,在用cut取列。

[root@localhost data]# cat /etc/passwd |grep -E "^(root|mage|wang)"|cut -d: -f1,3,7
root:0:/bin/bash
mage:1007:/bin/bash
wang:1008:/bin/bash

2.找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

案例思路
分析:用alpha匹配任何英文大小写字符,()匹配小括号。

[root@localhost data]# grep -En "^([[:alpha:]_]+)()" /etc/rc.d/init.d/functions
103:checkpid() {
112:__kill_pids_term_kill_checkpids() {
138:__kill_pids_term_kill() {
187:__pids_var_run() {
223:__pids_pidof() {
230:daemon() {
324:killproc() {
407:pidfileofproc() {
422:pidofproc() {
448:status() {
524:echo_success() {
535:echo_failure() {
546:echo_passed() {
557:echo_warning() {
569:update_boot_stage() {
577:success() {
583:failure() {
591:passed() {
598:warning() {
605:action() {
618:strstr() {
624:is_ignored_file() {
650:is_true() {
660:is_false() {
670:apply_sysctl() {

3.使用egrep取出/etc/rc.d/init.d/functions中其基名

案例思路
分析:[^/]+ 不在/指定范围内的字符,$匹配行尾

[root@localhost data]# echo "/etc/rc.d/init.d/functions"|grep -Eo ‘[^/]+$‘
functions

4.使用egrep取出上面路径的目录名

案例思路
分析:原理与上面相同

[root@localhost data]# echo "/etc/rc.d/init.d/functions"|grep -Eo ‘[^/]+‘
etc
rc.d
init.d
functions

5.统计last命令中以root登录的每个主机IP地址登录次数

案例思路
分析:

[root@localhost data]# last|grep ‘^root>‘|tr -s " "|cut -d" " -f3|grep "^[[:digit:]].*$"|sort|uniq -c
      4 10.0.0.110

6.利用扩展正则表达式分别表示0-9、 10-99、 100-199、 200-249、 250-255

[root@localhost data]# ifconfig|grep -E ‘[0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5]‘
        inet 10.50.100.12  netmask 255.0.0.0  broadcast 10.255.255.255
        inet6 fe80::cdf4:f8e0:5549:d25a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a6:5d:03  txqueuelen 1000  (Ethernet)
        RX packets 63262  bytes 48344463 (46.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26521  bytes 3271667 (3.1 MiB)
        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>
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

7.显示ifconfig命令结果中所有IPv4地址

[root@localhost data]# ifconfig|grep -Eo ‘([[:digit:]]{1,3}.){3}[[:digit:]]+‘
10.50.100.12
255.0.0.0
10.255.255.255
127.0.0.1
255.0.0.0

8.将此字符串: welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前面

案例思路
分析:用tr命令先删除句子中的空格,再用‘.‘匹配任意单个字符,-o输出仅显示匹配到的字符串,最后再通过sort和uniq命令进行排序统计。

[root@localhost data]# echo "welcome to magedu linux"|tr -d ‘[[:blank:]]‘|grep -o ‘.‘|sort|uniq -c|sort -nr
      3 e
      2 u
      2 o
      2 m
      2 l
      1 x
      1 w
      1 t
      1 n
      1 i
      1 g
      1 d
      1 c
      1 a






以上是关于7-3.文件处理工具之egrep案例分析的主要内容,如果未能解决你的问题,请参考以下文章

三剑客之sed,awk,grep,egrep

文本处理工具之grep与egrep

Linux学习汇总——Linux用户组管理,文件权限管理,文本处理工具grep及egrep

Linux三剑客之grep 与 egrep

文本处理工具grep,egrep和正则表达式的使用

linux文本处理三剑客之grep