awk

awk 截取字符串示例

  • 可以使用 awk print 来截取字符
  • 在默认情况下,分隔符是空白符。也就是说,Less 是参数 $4, than 是参数 $5
    1. # kougazhang/whql_python3.6.0 latest f9bac669f761 Less than a second ago 1.12GB
    2. # 想截取这个字符中的 Less
    3. docker images|grep -w kougazhang/whql_python3.6.0|grep -vw \<none\>|grep -v grep|awk '{print $5}'

awk print 参数从 $1 开始

  • 注意 $0 照样是文件本身,参数是从 $1 开始的

awk print 指定新的分隔符

  • 普通用法:

    1. git status|grep modified|awk '{print $2}'
  • 默认分隔符是空格,可以使用 -F 指定新的分隔符:

    1. echo 'a/b/c'|awk -F / '{print $1}'

获取最后一个元素

  1. echo 'a/b/c'|awk -F / '{print $NF}'

cut

参考:https://stackoverflow.com/questions/3742292/shell-script-how-to-cut-part-of-a-string

cut 分割字符串时,它的入参需要是一串字符。

参数

  • -f , cut 能达到 python 字符串的 split 的效果,会按照切割符返回一个数组。 -f 负责指定获取这个数组的哪些元素。 -f1 返回切割的第一个。
    • -f startNum-endNum , 能够指定返回数组的起始长度。
  1. [root@ligntning-dev ~]# echo 1,2,3 | cut -f1 -d ","
  2. 1
  3. [root@ligntning-dev ~]# echo 1,2,3 | cut -f1-2 -d ","
  4. 1,2
  • -d , 指定分隔符。
    • 分界符必须是单个字符
  1. [root@ligntning-dev ~]# echo 1,2,3 | cut -f1-2 -d ",b"
  2. cut: 分界符必须是单个字符
  3. Try 'cut --help' for more information
  • | , 管道符不是参数,但是可以要切分的字符传给 cut。