Linux-正则表达式与三剑客

1 固化命令文件

  登录时执行文件的顺序

    /etc/profile

    /etc/profile.d

    ~/.bash_profile

    ~/.bashrc

    /etc/bashrc

  非登录shell

    ~/.bashrc

    /etc/bashrc

    /etc/profile.d

  修改配置文件的时候

    修改文件后 可以用 source 文件 来使得设置的配置生效

    配置PATH的方法

    vim /etc/profile 

    在最后加上

      PATH=要注入的:$PATH

      export PATH

2 正则表达式

  更多正则表达式参见http://deerchao.net/tutorials/regex/regex.htm

  ^ 开头 取反用于[]中

  $ 结尾

. 代表任意一个字符

* 前面的字符有0个或者无穷个

+ 前面的字符有1个或者无穷个

{} 前面的字符有 某个范围的

  

? 前面的字符0次或者1次

- 范围, 从哪到哪, 用于[]中获取范围 

[] 在内的其中一个

  [a-z] 小写字母

  [A-Z] 大写字母

  [a-Z] 所有英文字母

  [0-9] 数字

  其中 在[]中要输出-需要将其放在末尾并转义

转义

() 分组

  获取该分组用 数字

  其中数字从1开始从左往右数第几组

3 grep命令

  grep -选项 '查询内容' 文件

    作用: 根据查询的内容, 只要当前行满足了'查询内容'就显示出来, 匹配正确的标红显示

  -n 输出行号

  -o 只显示匹配后的内容

  -q 安静模式 不显示结果(quiet)

  -A 行数 显示后几行

  -B 行数 显示前几行

  -C 行数 显示前后几行

  -c 显示匹配到的行数(conunt)

  -l 过滤成功之后显示文件名, 不成功则不显示

  -i 忽略大小写来匹配(ignore)

  -v 取反显示行

  -w 单词, 查询内容必须是单词匹配

  -E 扩展模式, 使得更多的正则表达式得到支持, 等同于 egrep

  -e 用于多个查询条件的时候, 只要满足一个条件就可以输出

    egrep -e 'root' -e 'hello' /etc/passwd

  诸如过滤掉某个文件的注释和空行

    

4 sed命令

  sed是流编辑器, 同样是以行为单位

  命令格式

    sed -选项 '处理办法' 读取的文件

  选项

  -n 静默模式 不打印结果

  -e 可以指定多个处理  

  -i 对文件进行直接修改

  -f 将规则写到文件中

  -r 扩展模式

处理办法

  处理办法有两种, 一种是针对行号进行对行的处理, 另一种是书写正则表达式, 对满足正则表达式的内行进行处理

1 行号操作

  3d 删除第三行

  3p 打印第三行

  3c 改变第三行的内容(change)

  3a 在第三行之后增加一行

    sed '3a add to this line' /etc/passwd

  3i 在第三行之前增加一行

    sed '3i insert to this line' /etc/passwd

1,3d 从1行到3行删除

1d;3d 删除1行和3行

s/替换的/换成的/ 替换

s/替换的/换成的/g 一行的都替换 全局替换

  2 正则表达式操作

    格式:

    '/正则表达式/操作'

人若有恒 无所不成
原文地址:https://www.cnblogs.com/weihuchao/p/6600108.html