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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。