linux 系统中awk 字符串处理函数

1、sub、gsub

root@DESKTOP-1N42TVH:/home/test# ls
test.txt
root@DESKTOP-1N42TVH:/home/test# cat test.txt  ## 测试数据
a 3 3
s 1 j
z c m
q e i
3 4 k
h f 3
root@DESKTOP-1N42TVH:/home/test# awk '{sub(3,"xxx"); print $0}' test.txt    ## sub替换第一个匹配的字符
a xxx 3
s 1 j
z c m
q e i
xxx 4 k
h f xxx
root@DESKTOP-1N42TVH:/home/test# awk '{gsub(3,"xxx"); print $0}' test.txt  ## gsub替换所有匹配的字符
a xxx xxx
s 1 j
z c m
q e i
xxx 4 k
h f xxx

 

2、length

root@DESKTOP-1N42TVH:/home/test# cat test.txt
a 3 3 a 3 3
s 1 j s 1 j
z c sm z c m
q e i388 q e i
3 4 k33 3 4 k
h f 3 h f 3
root@DESKTOP-1N42TVH:/home/test# awk '{print length($0)}' test.txt
11
11
12
14
13
11
root@DESKTOP-1N42TVH:/home/test# awk '{print length($3)}' test.txt
1
1
2
4
3
1
root@DESKTOP-1N42TVH:/home/test# awk 'length($3) == 3' test.txt
3 4 k33 3 4 k

 

3、index / match

root@DESKTOP-1N42TVH:/home/test# ls
test.txt
root@DESKTOP-1N42TVH:/home/test# cat test.txt
a 3 3 a 3 3
s 1 j s 1 j
z c sm z c m
q e i388 q e i
3 4 k33 3 4 k
h f 3 h f 3
root@DESKTOP-1N42TVH:/home/test# awk '{print match($0, "j")}' test.txt
0
5
0
0
0
0
root@DESKTOP-1N42TVH:/home/test# awk '{print index($0, "j")}' test.txt
0
5
0
0
0
0

 

4、substr

root@DESKTOP-1N42TVH:/home/test# ls
test.txt
root@DESKTOP-1N42TVH:/home/test# cat test.txt
a 3 3 a 3 3
s 1 j s 1 j
z c sm z c m
q e i388 q e i
3 4 k33 3 4 k
h f 3 h f 3
root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 1, 3)}' test.txt
3
j
sm
i38
k33
3
root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 1, 2)}' test.txt
3
j
sm
i3
k3
3
root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 2)}' test.txt


m
388
33

 

5、split

root@DESKTOP-1N42TVH:/home/test# ls
test.txt
root@DESKTOP-1N42TVH:/home/test# cat test.txt
test3_1_clean.fq.gz test3_2_clean.fq.gz
test4_1_clean.fq.gz test4_2_clean.fq.gz
test5_1_clean.fq.gz test5_2_clean.fq.gz
root@DESKTOP-1N42TVH:/home/test# awk '{split($1, x, "_"); print x[1], x[2], $0}' test.txt
test3 1 test3_1_clean.fq.gz test3_2_clean.fq.gz
test4 1 test4_1_clean.fq.gz test4_2_clean.fq.gz
test5 1 test5_1_clean.fq.gz test5_2_clean.fq.gz

 

相关文章

Centos系统之Shell编程基础知识
从Export理解Shell环境和变量生存期
linux shell数组变量、类型及规则
Centos编程Shell基本工作原理方案
Centos操作系统编程之Shell 问答录
rsync-linux备份脚本