Linux从入门到进阶全集——【第十四集:Shell编程】

  1. 正则表达式(与通配符)
    1.  正则表达式:匹配字符串,属于包含匹配[只要包含匹配条件就行],grep,awk,sed等命令支持正则表达式
    2. 通配符(*,?,[]):匹配文件名,属于完全匹配[必须是完全匹配条件才行],ls,find,cp等支持通配符,而不支持正则表达式
    3. 所有正则表达式:详情见百度百科关于正则表达式解释:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215 Linux从入门到进阶全集——【第十四集:Shell编程】
    4. 重点注意1:使用{n},{n,},{n,m}这两个正则表达式时,匹配字符串需要引号引起来,并且使用转义字符【\】将花括号【{ }】转义,例如:grep "fo\{2,\}" install.log 就能匹配install.log文件中foooo的字符串。

    5. 重点注意2:【*】的理解:匹配前面字符0次或者任意多次,如果任意字符串的正则例如:a*(这个表示匹配所有内容),而不是匹配包含a字符的所有字符串所在行。因为a*表示a匹配0次,也就是不包含a,所以,即便不包含a的字符行会被列出来,同时,a*还表示a匹配任意多次,也就是包含a所在字符行。所以,综合而言,它匹配所有内容,这个正则表达式实际应用上没有意义。如果要匹配包含一个a字符串的行,可以这样写:aa*,这样就能匹配所有包含一个a字符串的行。
    6. 重点注意3:凡是表中出现的字符都是正则表达式符号,如果需要作为字符串匹配条件,这是用转义字符【\】进行转义,例如:匹配【.】这个字符,就要使用grep \. xxx.txt  这种表达式,表示匹配包含【.】这个字符的字符行,而不是任意字符。
  2. 字符截取命令。
    1. cut字段提取【列】命令
      1. cut -f 2,4 xx.txt
      2. cut -d ":" -f 2,3 xx.txt
      3. 例如:cut -d " " -f 1 install.log     这个命令就能截取空格分割的第一列
      4. 缺陷:默认分隔符是制表符tab符,要么使用-d参数指定分隔符,而对于一些不合规则的分隔符则无法正常分割
    2. printf命令
    3. awk命令
    4. sed命令
  3. 字符处理命令
  4. 条件判断
  5. 流程控制
上一篇:(转)Linux Shell系列教程之(十四) Shell Select教程


下一篇:【开源】.Net Api开放接口文档网站