awk
awk 截取字符串示例
- 可以使用 awk print 来截取字符
- 在默认情况下,分隔符是空白符。也就是说,Less 是参数 $4, than 是参数 $5
# kougazhang/whql_python3.6.0 latest f9bac669f761 Less than a second ago 1.12GB
# 想截取这个字符中的 Less
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 指定新的分隔符
普通用法:
git status|grep modified|awk '{print $2}'
默认分隔符是空格,可以使用
-F
指定新的分隔符:echo 'a/b/c'|awk -F / '{print $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
, 能够指定返回数组的起始长度。
[root@ligntning-dev ~]# echo 1,2,3 | cut -f1 -d ","
1
[root@ligntning-dev ~]# echo 1,2,3 | cut -f1-2 -d ","
1,2
-d
, 指定分隔符。- 分界符必须是单个字符
[root@ligntning-dev ~]# echo 1,2,3 | cut -f1-2 -d ",b"
cut: 分界符必须是单个字符
Try 'cut --help' for more information
|
, 管道符不是参数,但是可以要切分的字符传给 cut。