cut
切割字符串
- -d: 切割字符,只支持单字符
- -f: 选取分割字段
[root@8994ac83081b tmp]# echo '11:22:33' | cut -d ':' -f 2
22
sed
替换字符
- -s: 替换字符
- -g: 替换每行第一个匹配
[root@8994ac83081b tmp]# echo '11||22||33' | sed 's/||/ /'
11 22||33
[root@8994ac83081b tmp]# echo '11||22||33' | sed 's/||/ /g'
11 22 33
已匹配字符串标记&
正则表达式 \w+ 匹配每一个单词,使用 [&] 替换它,& 对应于之前所匹配到的单词:
[root@8994ac83081b tmp]# echo '11||22||33' | sed 's/\w\+/[&]/g'
[11]||[22]||[33]
awk
[root@8994ac83081b tmp]# cat ab.txt
1:2
3:4
5:6
7:8
[root@8994ac83081b tmp]# cat ab.txt | awk -F : '$2>4 { print $2 }'
6
8
[root@8994ac83081b tmp]# cat ab.txt | awk -F : 'BEGIN{ sum=0; print "sum" } { print $1"+"; sum+=$1 } END{ print "="; print sum}'
sum
1+
3+
5+
7+
=
16
[root@8994ac83081b tmp]# cat ab.txt | awk -F : 'BEGIN{ sum=0; print "sum" } { if($1>3) print $1"+"; sum+=$1 } END{ print "="; print sum}'
sum
5+
7+
=
16