脚本篇(二)------shell script基本工具汇总

shell script基本工具汇总

一、shell的基本操作工具汇总
键入工具                 read [-pt] variable
声明变量命令         declare [-aixr] variable
                typeset跟declare一样
限制系统资源         ulimit [-HSacfdltu] numbersetting
分割工具            cut -cdf file 
分析筛选工具         grep -acinv --color=auto 'string' filename
排序工具                 sort [-fbMnrutk] [file or stdin]
删减工具                 uniq [ic] file                                                         
文本统计工具         wc [-lwm] file 
双向重定向工具         tee [-a] file
删除替换工具         tr [-ds] file 
处理tab、反斜杠      col [-xb]file 
同数据行拼接         join [-ti[num]] file1 file2
强行行拼接         paste [-d] file1 file2
tab转成空格         expand [-t] file
文件切割工具         split [-bl] file PREFIX
切割文件做参数        xargs [-0epn] command [file or stdin]

二、正则篇 RE
shell下的符号叫“通配符”,""以内的符号是正则
1、基本正则:
    [] 只取一个
    [^] 内容取非
    ^$ 行首行尾符
    .*         任意字符和任意次前一字符
    {}         限定连续RE字符范围,要用\跳脱大括号


2、拓展正则:
    +        至少一次的*
    ?         0或一次前一个RE字符
    |         or的方式,同时找数个串
    ()         一组字符串,常和|一起用
    ()+ 多个重复组判别


3、常用工具:
sed工具:
    动作说明: [n1[,n2]] function
    function选项:acdips
    额外示例用法:sed 's/source/tar/g' file 
    #sed [-nefri] [动作]
    
printf工具(格式化打印(数据)):
    格式参数 \a \b \f \n \r \t \v \x %ns %ni %N.nf
    # printf '格式' 内容


awk工具(设条件、做动作):
    sed针对一整行、awk针对一行各个字段
    默认的字段分割符是 tab 和 空格; $0是一整行,$1是第一列,以此类推
    默认变量:NF每行拥有字段数、NR当前处理的是第几行、FS默认分隔符
    条件运算符:> < = >= <= == !=
    # awk 'BEGIN{FS=":"} 条件类型1{动作1,即命令} 条件类型2{动作2} ...' filename


diff、cmp、patch工具:
    #diff [-bBi] file1 file2            以行为单位做比较,纯文本文件
    #cmp [-s] file1 file2            利用字节单位去做比较,可以比较纯文本,二进制文件
    #patch [options] [sourcefile] [patchfile]      利用diff来的patchfile去更新sourcefile


pr工具:
    高级一点的print工具,例如可以带标题和页码
    #pr file

你可能感兴趣的:(linux,技术博客)