zoukankan      html  css  js  c++  java
  • 实用基本程序

    两文件more/pg/less 逐屏显示文件

    q           =》退出
    /pattern    =》匹配字符串
    /           =》继续查找匹配
    more: 空格 显示下一屏   回车  上滚到下一行
    pg: 回车 显示下一屏 l 上滚到下一行
    less: 可以使用上下左右 pgUP pgDn 等按键

    cat/od 列出文件内容

    cat   文本格式打印

    od 逐字节打印
    od参数
    -t x1 =》 16进制打印
    -c =》 逐字符方式打印文件,遇到不可打印字符打印编码

    head/tail

    head -15 a  显示头15行
    tail -f a   实时打印文件尾部被追加的内容

    wc

    列出文件中一共有多少行,有多少个单词,多少字符
    当指定的文件数大于1时,最后还列出一个合计
    常用选项-l:只列出行计数

    sort 对文件内容进行排序

    默认每行作为一个整体进行排序,进行的是字符串的排序,根据ASCII码进行排序,默认是升序
    
    -n   对于数字按照算术值大小排序,而不是按照字符串比较规则
    -b   忽略每行前面开始出的空格字符。
    -c   检查文件是否已经按照顺序排序。
    -r   以相反的顺序来排序。

    tee三通

    将从标准输入stdin得到的数据抄送到标准输出stdout显示,同时存入磁盘文件中
    ls -al | tee lsfile

    正则表达式

    元字符
    .  *  [     ^  $
    
    圆点,星号,反斜线在方括号内时,代表它们自己
    ^在开头,则表示与集合内字符之外的任意字符匹配

    grep 在文件中查找字符串

    grep pattern 文件名列表
    当找到pattern时,把对应的整行显示出来
    如果pattern用到了正则表达式,要用''或者""引起来

    egrep 与grep类似,可以使用扩展的正则表达式

    +号表示1次或多次
    ?表示0次或一次
    与星号地位类似,限定重复次数 {m,n} 例如:[1-9][0-9]{6,8}
    表示逻辑或的符号 |
    圆括号() : 表示分组
    
    egrep 在指定模式方面比grep更灵活,但算法需要更多的处理时间 

    fgrep 快速grep

    按字符串搜索而不是按模式搜索。
    fgrep运算速度快,适合于从大量的数据中进行检索指定字符串,不可按模式查找

    grep/fgrep/egrep的选项

    -n  显示时每行前面显示行号
    -v  显示所有不包含模式的行(就是取非)
    -i   字母比较时忽略字母的大小写

    sed

    sed '命令' 文件名列表
    sed -f 命令文件  文件名列表

    awk 文本处理语言

    awk本身也是为了文本的过滤,打印出对应的文本行,这与grep是相似的
    
    用法:
    awk ‘程序’ 文件list
    awk -f 程序存放的文件  文件list  =》把程序放在文件里
    
    其中程序的格式是 condition {action}
    
    awk内置的变量有
    
    NR 当前记录编号
    $0  当前记录
    $1、$2... 记录中的第i个域
    FILENAME 当前文件名
    
    如果不指定条件,就是对所有航一起做action的处理。条件类似于C语言的<>= && ||  !等
    对于使用正则表达式的condition: /pattern/
    
    动作:
    print x,y,z
    printf("格式串",x,y,z)
    
    awk覆盖了grep的全部功能
    
    示例代码
    $ ps -ef | awk '/guest/{ printf "%s ",$2 }‘
    $cat test.c | awk '{printf "%d: %s
    ",NR,$0 }'  不做处理
    $ who | awk '/^ *zhang / {printf("%s ", $2)}'  

    不管是awk还是grep这样的文本处理的工具都是按照行来做处理的,就是每一行都会去匹配条件,匹配成功了输出或者执行action

    tr:翻译字符

    tr String1 String2
    把stdin拷贝到stdout,string1中出现的字符替换为string2中的对应字符
    cat report | tr '[a-z]' '[A-Z]' 
    cat file1 | tr % '12'    这里000 三个八进制数字表示的一个字符

    cmp 两文件逐个字节比较

    cmp file1 file2
    逐字节比较两个文件是否完全相同
    两个文件完全相同时,不给出任何提示
    两个文件不同时,打印出第一个不同之处

    md5sum

    md5sum file 得到文件的16字节的hash值  MD5算法
    sha1sum file  得到文件的20字节的hash值  SHA-1算法

    diff 得到两个文件的差别

    diff file1 file2 
    发现不同,就列出一个如何将file1转化为file2的指令
    这些指令有a(Add),c(Change)和d(Delete) 
    指令字母左边的行号是file1的行号,右面是file2的行号
    列出内容时,大于号后边的内容是需要在file1文件中增加的内容;
    小于号后边的内容是需从file1中删除的内容
    -b 忽略每行后面多余的空格
    -e 生成一个脚本文件,ed命令使用这个脚本程序编辑file1文件就能变成file2文件

    L1 a L2,L3 
    >file2 的L2-L3行的内容    将file2的第L2-L3追加到file1的L1之后

    L1,L2 c L3,L4            
    <file1的L1-L2行内容
    ----
    >file2的L3-L4行的内容     将file1的L1-L2换成file2的L3-L4

    L1,L2 d L3
    <file1的L1-L2行内容       将file1 的L1-L2行删除之后,九个file2的L3之后的内容相同了

    patch命令

    也是类似于diff -e的选项
    patch -p0 testfile1 testfile.patch

     

  • 相关阅读:
    自定义线性表
    网站关键词抓住热点话题获取长尾关键词 给网站增添流量(图)
    Hibernate常见注解说明
    面试问题java基础
    Spring常见的注解说明
    poj3268
    poj3273
    poj3250
    poj3277
    poj3253
  • 原文地址:https://www.cnblogs.com/Coder-Pig/p/6720453.html
Copyright © 2011-2022 走看看