linux基础学习 -- 正则表达式(二)

版权声明:一起学习,一起进步,一起coding https://blog.csdn.net/sunshine2285/article/details/86748628

与正则表达式相关的处理命令

grep  (Global regular expression print) 行筛选

1.语法:grep 模式  文件名列表 [egrep、fgrep]

2.grep选项:

  • -F  --fixed-strings  固定字符串搜索(fgrep)
  • -G --basic-regexp 基本正则表达式语法(BRE)
  • -E --extended-regexp  扩展正则表达式语法(ERE)
  • -P --perl-regexp  兼容Perl语法的正则表达式 (PCRE) [查PCRE语法:man pcresyntax]
  • -n 显示时每行前面显示行号
  • -v 显示不包含模式的行
  • -i  字母比较式忽略字母的大小写

sed    流编辑

1.语法:

  • sed '命令' 文件名列表
  • sed -e '命令1'  -e '命令2' -e '命令3'  文件名列表
  • sed -f 命令文件  文件名列表
  • 在模式描述中增加 \( 和 \) 仍然代表它自身
  • 替换字符串中的\0 \1 \2 代表与模式匹配的第1个,第2个……字符串

     

awk    行列筛选及文本加工

1.语法

  • awk '程序' 文件名列表
  • awk -f 程序文件名 文件名列表
  • 程序 = 条件 {动作}   awk对每行文本执行条件判断,满足条件执行动作(内置循环) 
    允许多段程序:多段程序之间使用空格或者分号分割开来

2.处理方式

  • 输入文件的每一行作为一个 "记录",变量NR就是行号
  • 每行用空格分割开来的内容,叫做记录的 "域" 内置变量$1就是第1域的内容,特别的$0就是整个这一行的内容
  • awk的处理为:符合条件的行就执行动作

3.awk描述条件的方法

  • 使用c语言类似的关系运算符 < <= == != > >=
  • 使用c语言类似的逻辑运算符 || && !
  • 正则表达式的模式匹配
  • 特殊条件:
    --不指定任何条件,对所有的文本行执行动作
    --BEGIN 开始处理所有文本之前执行的动作

4.awk描述动作的方法

  • 自定义变量
  • 加减乘除等算术逻辑运算
  • 正则表达式匹配运算符(用作条件判断)  ~  !~
  • 流程控制(与C语言类似)
  • print var1,var2
  • printf (格式字符串,var……)

猜你喜欢

转载自blog.csdn.net/sunshine2285/article/details/86748628