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
复制代码

 

posted @   小鲨鱼2018  阅读(214)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-01-03 c语言中switch语句
点击右上角即可分享
微信分享提示