一、正则表达式

正则表达式:是一类字符所书写出的模式(pattern)

    元字符:类似通配符,不表示字符本身的意义,用于额外功能性的描述

基本正则表达式(BRE)和扩展正则表达式(ERE)

基本正则元字符:

字符匹配:
     . : 任意单个字符
    [] : 指定范围内的任意单个字符
    [^] : 指定范围外的任意单个字符
    [0-9],[:digit:] : 数字
    [a-z],[:lower:] : 小写字母
    [A-Z],[:upper:] : 大写字母
    [:alpha:] : 大小写字母
    [:alnum:] : 字母+数字
    [:space:] : 空格
    [:putct:] : 标点符号
    
匹配次数:
    * : 匹配前一个字符的任意次(包括0次)
    .* : 匹配任意长度的任意次
    \? : 0次或1次
    \+ : 至少1次
    \{n\} : n次
    \{n,\} : 至少n次
    \{,n\} : 至多n次
    \{n,x\} : 至少n次至多x次
    
位置锚定:
    ^ : 锚定行首
    $ : 锚定行尾
    ^$ : 表示空行
        ^[[:space:]]*$ : 空白行
    \<,\b : 锚定词首
    \>,\b : 锚定词尾
    
分组:
    \(\) 
    引用:
        \1:后向引用,引用第一个括号左匹配到的字符串。

扩展正则表达式:

字符匹配:
    . : 任意单个字符
    [] : 指定范围内的任意单个字符
    [^] : 指定范围外的任意单个字符
匹配次数:
    * : 匹配前一个字符的任意次(包括0次)
    .* : 匹配任意长度的任意次
    ? : 0次或1次
    + : 至少1次
    {n} : n次
    {n,}: 至少n次
    {,n} : 至多n次
    {n,x} : 至少n次至多x次
位置锚定:
    ^ : 锚定行首
    $ : 锚定行尾
    ^$ : 表示空行
        ^[[:space:]]*$ : 空白行
    \<,\b : 锚定词首
    \>,\b : 锚定词尾
分组:
    () 
    引用:
        \1:后向引用,引用第一个括号左匹配到的字符串。
或:
   ac|bc : ac或者bc

二、文本处理命令

grep : 文本过滤

grep [option] file
选项:
    -v : 取反
    -i : 忽略大小写
    -n : 显示匹配行的行号
    -c : 统计匹配的行数
    -q : 静默模式,不输出任何信息
    -o : 仅显示匹配到的字符串
    -A n : 匹配搜索到的字符串的后n行
    -B n :匹配搜索到的字符串的前n行
    -C n :匹配搜索到的字符串的前后n行
    -e :实现多个选项间的逻辑or关系
        grep -e 'str0' -e 'str1' file
    -w : 匹配整个单词
    -E : 支持扩展正则表达式

wc : 统计文件

wc [option] file
选项:
    -l :行数
    -w :单词数
    -c :字节数
    -m :字符数
    -L :最长行的字符数

sort : 排序

选项
    -t : 指定分隔符
    -k : 指定以第N列进行排序
    -n : 以数字大小排序
    -r : 倒序排序
    -u : 去除重复行

uniq :去除文件中相邻的重复行

选项:
    -c :显示每行重复出现的次数
    -d : 仅显示重复过的行
    -u : 仅显示不曾重复的行
cat : 查看文件内容
cat [options] file
选项:
    -n : 显示行号
    -b : 显示行号,空行不显示行号
    -E : 显示结束符 $
    -A : 显示所有特殊符号
    -s : 将连续空行压缩成一行
    
tac :反向显示	


rev : 反向显示字符串,abc > cba


nl  : 显示行号,空行不添加行号

 
more : 分页显示,不能向前翻页
more [option] file
选项:
    +n : 从第n行开始显示
    -n : 每次显示n行数据
    -c :清屏再现实
    -p : 换页时清屏

        
less : 分页显示,不自动退出
 -N : 显示行号
    查看文件时:	
    /str : 向下搜索字符串
    ?str : 向上搜索字符串

        
head : 显示文件的前几行
    -c n : 取字符的前n个

        
tail : 显示文件的后几行
    -f : 实时显示
    -F : 跟踪文件名

        
tailf :类似tail -f,当文件不增长时不访问文件,减少磁盘I/O


cut:显示行中的指定部分,删除文件中指定字段。
    -d : 指定分隔符
    -f : 与-d一起使用,显示第n列
    -c : 按字符切割
    
paste :合并两个文件相同行号的行到一行
    -d :指定分隔符,默认用TAB
    -s :所有行合并成一行显示