熟练掌握正则表示法
简单地说,正则表示法就是处理字符串的方法,它以“行”为单位来进行字
符串的处理。正则表示法透过一些特殊符号的辅助,可以让使用者轻易完成查找
/删除/替换某些特定字符串的工作。
举例来说,如果只想找到 MYweb(前面两个为大写字母)或 Myweb(仅有一个
大写字母)字符串(MYWEB、myweb 等都不符合要求),该如何处理?如果在没
有正则表示法的环境中(例如 MS Word),你或许要使解语系对正则 用忽略大
小写的办法,或者分别以 MYweb 及 Myweb 搜寻两遍。但是,达式的影响忽略
大小写可能会搜寻到 MYWEB/myweb/MyWeB 等不需要的字符串而
造成困扰。
1.掌握 grep 的高级使用
格式:grep[-A][-B][--color=auto]‘查找字符串' filename
选项与参数的含义如下。
-A:后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出
来。
-B:后面可加数字,为 befor 的意思,除了列出该行外,前面的 n 行也列出来。
--color=auto:可将搜寻出的正确数据用特殊颜色标记。
【例 1】用 dmesg 列出核心信息,再以 grep 找出内含 IPv6 的那行。
[root@CentOS7-1~]# dmesg | grep 'IPv6'
20.944553] IPv6:ADDRCONF(NETDEV _UP) :
ens38: link is not ready26.822775] IPv6: ADDRCONF(NETDEV_UP):
virbr0: link is not ready553.276846] IPv6: ADDRCONF (NETDEV_
UP): ens38: link is not ready553.282437] IPv6: ADDRCONF (NETD
EV_UP): ens38: link is not ready553.284846] IPv6: ADDRCONF (N
ETDEV_UP):ens38: link is not ready
[ 553.286861] IPv6: ADDRCONF (NETDEV_CHANGE): ens38: link beco
mes ready
# dmesg 可列出核心信息,通过 grep 获取 IPV6 的相关信息。 不过没有行
号与特殊颜色显示。
【例 2】承上题,要将获取到的关键字显色,且加上行号(-n)来表示。
[root@CentOS7-1 ~]# dmesg | grep -n --color=auto 'IPv6'
1903:[20.944553] IPv6: ADDRCONF (NETDEV_UP):ens38: link is not
ready
1912:[ 26.822775] IPv6: ADDRCONF(NETDEV_UP): virbr0: link is n
ot ready
1918:[ 553.276846] IPv6:ADDRCONF(NETDEV_UP): ens38:link is not
ready
评论0
最新资源