linux笔记之正则表达式(一)

基础正则表达式

说明:

  • 正则表达式基本上是一种“表达式”, 只要工具程序支持这种表达式,那么该工具程序就可以用来作为正则表达式的字串处理之用。 例如 vi, grep, awk,sed 等等工具,因为她们有支持正则表达式。

重要性:

  • 我们谈到的这个正则表达式,与前一章的 BASH 就有点像是数学的九九乘法表一样,是Linux 基础当中的基础。

一:grep工具

  • 范例一:用 dmesg 列出核心讯息,再以 grep 找出内含 qxl 那行
    [[email protected] ~]$ dmesg | grep ‘qxl’
  • 范例二:承上题,要将捉到的关键字显色,且加上行号来表示:
    [[email protected] ~]$ dmesg | grep -n --color=auto ‘qxl’
  • 范例三:承上题,在关键字所在行的前两行与后三行也一起捉出来显示
    [[email protected] ~]$ dmesg | grep -n -A3 -B2 --color=auto ‘qxl’

样例

  • 例题一、搜寻特定字串
    • [[email protected] ~]$ grep -n ‘the’ regular_express.txt
    • 想要“反向选择”呢?也就是说,当该行没有 ‘the’ 这个字串
    • [[email protected] ~]$ grep -vn ‘the’ regular_express.txt
  • 例题二、利用中括号 [] 来搜寻集合字符
    • [[email protected] ~]$ grep -n ‘t[ae]st’ regular_express.txt
    • 其实 [] 里面不论有几个字符,他都仅代表某“一个”字符
  • 在一组集合字符中,如果该字符组是连续的,例如大写英文/小写英文/数字
    等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写
    • 取得有数字的那一行
    • [[email protected] ~]$ grep -n ‘[0-9]’ regular_express.txt
    • 我们知道 [:lower:] 就是 a-z 的意思,那么 [a-z] 当然就是 [[:lower:]] 啰。
  • 例题三、行首与行尾字符 ^ $
    • 想要让 the 只在行首列出呢?
    • [[email protected] ~]$ grep -n ‘^the’ regular_express.txt
    • 那个 ^ 符号,在字符集合符号(括号[])之内与之外是不同的! 在 [] 内代表“反向选择”,在 [] 之外则代表定位在行首的意义!
    • 要找出来,哪一行是“空白行”。
    • [[email protected] ~]$ grep -n ‘^$’ regular_express.txt
  • 例题四、任意一个字符 . 与重复字符 *
    • 假设我需要找出 g??d 的字串,亦即共有四个字符,起头是 g 而结束是 d ,我可以这样做。
    • [[email protected] ~]$ grep -n ‘g…d’ regular_express.txt
    • 当我们需要“至少两个 o 以上的字串”时,就需要 ooo*
    • .* 就代表零个或多个任意字符”的意思啦!
  • 如果我想要找出“任意数字”的行列呢?因为仅有数字,所以就成为:

基础正则表达式字符汇整

linux笔记之正则表达式(一)
linux笔记之正则表达式(一)

相关文章:

  • 2021-08-04
  • 2022-02-03
  • 2022-02-07
猜你喜欢
  • 2021-12-08
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
  • 2021-09-16
相关资源
相似解决方案