• Linux命令简单操作


    一、 awk

    命令格式:

        awk ‘BEGIN{commands} pattern {commands} END{commands}’file

    工作方式:

        1.执行BEGIN{commands}语句块中语句,可选的语句块

        2.从文件或者stdin中读取一行,然后执行{commands},重复这个过程,直到文件全部被读取完

        3.当读至输入流末尾是,执行END{commands}语句块

    特殊变量:

        FILENAME:awk浏览的文件名

        NR:记录数量,执行过程中对应于当前行号

        NF:字段数量,执行过程中对应于当前行的字段数

        FS:设置分隔符,命令行 -F

        $0:执行过程中当前行的文本内容

        $1:第一个字段的文本内容

        $2:第二个字段的文本内容,以此类推

    print&printf打印输出的函数

      print的参数是以逗号进行分隔时,参数打印时则以空格作为定界符,awk的print语句中,双引号是被当做拼接操作符使用的  

      printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

    流程控制语句

      if(condition)else{}

      while(){}

      do{}while()

      for(;;)等 

    内建字符串控制函数:

        1.length(string):返回字符串的长度

        2.index(string,search_string):返回search_string在字符串中出现的位置

        3.substr(string,start_pos,end-pos):在字符串中从start-pos开始到end-pos位置,生成子串

       4.split(string,array,delimiter):用delimiter生成一个字符串列表,并将该列表存入数组,delimiter默认使用当前FS值。

       5.sub(regex,replace_str,string):将正则表达式匹配到的第一处内容替换成replace_str

       6.gsub(regex,replace_str,string):替换正则表达式匹配到所有的内容

       7.match(regex,string):检测正则表达式是否能够匹配字符串

    应用:

      1.从文件或者stdin中读取一行,循环执行{commands},直到读完

      echo "aXbX cXdXe a;b;cX d;e" | awk -F"[X|;| ]+" 'BEGIN{print "begin:"} {for(i=1;i<=NF;++i){++S[$i];printf("$%d=%s ",i,$i)}} END {print "end:"; for(i in S) print i, S[i]}'

      2.split函数

      

    二、sed

    sed语法格式:

      sed[options ]‘command’ file(s)

    sed常用选项:

        -n:只有经过sed 特殊处理的那一行(或者动作)才会被列出来

      -e:组合多个sed命令

      -f:执行 filename 内的sed 动作

      -r:sed 的动作支援的是延伸型正规表示法的语法

      -i:直接修改读取的文件内容,而不是屏幕输出

    sed常用命令:

      a:追加  sed ‘a xxx’ file 每一行后面都追加xxxx    sed‘$a xxx’file 最后一行追加

      i:插入  sed ‘i xxx’file 每一行前面插入xxx  

      c:取代  sed ‘2c xxx’file 第二行用xxx取代

      d:删除  sed ‘/^$/d’file  删除空白行   sed ‘1,5d’file 删除第1-5行

      s:替换  sed ‘s/pattern/replace_str/g’file   /g意味sed会替换每一处匹配,否则是第一处匹配

      &:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

      1 or 2:第1个or第2个匹配的字符串

    应用:

      1.&:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

      2.1 or 2:第1个or第2个匹配的字符串,(pattern)用于匹配子串,模式被包括在使用斜线转义过的()中

      3.使用管道组合多个sed命令

      sed  ‘expression’ | sed ‘expression’

      sed ‘expression;expressiong’

      sed -e ‘expression’ -e ‘expression’

    三、tr---translate转换

    tr语法格式:

      tr [options] set1 set2 

      原理:通过集合映射的概念,将set1映射成set2

    -常用参数

      -d:指定需要被删除的字符集合

    -c:使用集合的补集

      tr –c set1 set2  使用set1的补集,即不包含set1的所有字符

     

    -s:压缩输入中重复的字符,将连续重复的字符合并为一个字符

    应用:

    1.加密解密 

    2.数字文件相加

      将文件中的 转换成+,利用$[ operation ]执行算术运算

    3.tr集合列表

      tr [:class:]  [:class:]

       alnum:字母和数字    alpha:字母

      digit:数字  cntrl:控制(非打印)字符

      lower:小写字母  upper:大写字母

      graph:图形字符  punct:标点符号

      space:空白字符  xdigit:十六进制字符

    四、find

    find:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应操作

    常用参数

      -print:打印出批判文件的文件名(路径), 是输出文件的分割符

      -print0:(null)作为输出文件的分割符,xargs -0

      -name:文件名必需匹配的字符串,(-name“xx”-o -name“xx”) 匹配多个字符串

      -iname:忽略字母大小写

      -path:匹配文件路径

      -type:文件类型过滤

      -size:文件大小搜索

      -delete:删除查找到的文件

      -perm:匹配具有特定权限值的文件

      -newer:指定一个用于比较时间戳的参考文件,匹配出参考文件更新的所有文件

      -user:制定某用户文件

      -exec:借助-exec与其他命令进行结合,命令格式为:command {} ; 注意{}和之间的空格

      -ok:和-exec的作用相同,只是在安全模式下进行操作,按y键yes,按n键no

      -atime:访问时间,用户最近一次访问文件的时间,单位:天  -amin 单位:分

      -mtime:修改时间,文件内容最后一次被修改的时间,单位:天 –mmin 单位:分

      -ctime:文件(例如权限或所有权)最后一次改变的时间,单位:天 –cmin单位:分

       -表示小于(最近) +表示大于(超过) 没有- 或+ 表示数字当天

      !:表示不匹配规则的文件 

    应用:

      1.-exec:借助-exec与其他命令进行结合,命令格式为:command {} ; 注意{}和之间的空格

    五、xargs

    xargs:构造命令行参数并运行命令

    同管道的区别

       管道是实现将前面的标准输出作为后面的标准输入

        xargs是实现将标准输入作为命令的参数

       xargs的默认命令是echo,默认定界符是空格(空白字符)

        这意味着传递给xargs的输入如果包含换行和空白字符,通过xargs的处理,换行和空白将被空格取代,因此xargs是构建单行命令的重要组件之一

     常用参数

      -n number :多行输出,多个参数

      -d X:自定义定界符

      -I | -i replace_str:在xargs扩展时replace_str会被替换为从标准输入的每一行参数

      -L number :标准输入读取非空number行作为参数,-L 1 等价于-I

      -p:询问是否运行

      -t:启用跟踪方式

      -s size:设置命令行的最大字节数

      -x:如果有任何 命令行大于 -s Size 标志指定的字节数,停止运行 xargs 命令

    应用:

      1.-n number:设置命令的参数个数

    2.-I replace_str:命令参数替换

    3.xargs和find算是一对死党

    find的-print0和xargs的-0

    ps:只要是把find的输出结果作为xargs的输入,就必须将-print0与find结合使用,以字符null()来分割,同时,xargs -0将null作为定界符

  • 相关阅读:
    Java容器学习之ArrayList
    Java容器学习之List
    个人感悟
    python_批量修改密码综评
    修改的一段递归文件代码
    showtimu
    20190321xlVBA_明细信息表汇总成数据表
    20190320xlVBA_考场座位设置
    RG
    wdVBA_替换删除选择题括号中的选项
  • 原文地址:https://www.cnblogs.com/luyanhong456/p/6864316.html
Copyright © 2020-2023  润新知