Regular Expression 正则表达式RE
    用在字符串处理上面的一项表示式
    支持正则表达式的工具:vi grep sed awk
    12.2 基础正则表达式 P348
    语系对正则表达式的影响:
    dmesg:列出内核信息
    ^word 在行首
    word$ 在行尾
    [^list] 反向选择
    grep -n ‘^$’ re.txt 找出空白行
    . 一定有一个任意字符的意思 P354

    • x*代表有0个x至无穷多个x都可以

    两者的区别
    .* 零个或者是多个任意字符的意思
    限定连续RE字符范围 {}
    grep -n ‘o{\2}’ re.txt 转义字符 \
    grep:字符串数据的对比,将符合条件的字符串打印出来(以行为单位)
    Sed工具 P357
    分析标准输入stdin 删除 新增 选取特定行 替换
    sed [-nefri] [动作]

    • nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!

    nl /etc/passwd |sed ‘2i drink tea?\
    adsdffds?’

    • nl /etc/passwd |sed ‘2i drink tea?’
    • sed -i 还可以直接修改文件内容(而不经由屏幕输出)
    • sed 后面如果接了超过两个以上的动作时,每个动作前都要加上-e才行

    vmstat
    iostat
    12.3 扩展正则表达式 P361
    进行组的字符串处理、
    egrep
    grep -E

    • 代表多个该符号以前的字符 包括1个和1个以上(扩展)
        • 代表多个该符号以前的字符 包括0个和0个以上(基础)

    12.4文件的格式化与相关处理
    1格式化打印 printf
    2awk:好用的数据处理工具 P363
    将一行分为数个字段来处理
    awk ‘ ‘ filename
    NF(每一行$0所拥有的字段总数) Field
    NR(处理的第几行数据?) Row
    FS(当前的分隔字符 默认空格)
    begin Field Separator
    cat /etc/passwd | awk ‘{FS=”:”} $3>=500 {print $1 “\t” $3}’
    last -5 |sed ‘6,7d’| awk ‘{print $1 “\t lines:” NR “\t columes:” NF}’

    • awk的动作,即在需要多个命令辅助时,可以利用分号;间隔。或者用ENTER键来隔开每个动作
    • 与bash shell中的变量不同,awk变量可以直接使用,不用加$符号

    3文件比较工具
    diff (ASCII纯文本文件上) P366

    • 还可以比较整个目录下的不同
    • 以一行为单位比较
    • differ产生.patch补丁文件
    • 采用patch命令更新和还原

    cmp (非文本文件)

    • 以字节单位比较
    • 也可以比较二进制文件

    sed当中使用变量替换以及执行外部命令
    在sed中引入shell变量的四种方法
    sed命令使用双引号的情况下,使用$var直接引用
    sed命令使用单引号的情况下,使用’”$var”‘引用