linux 中 awk命令中的substr选项

发布时间 2023-07-13 08:26:15作者: 小鲨鱼2018

 

substr命令用于截取字符串

001、

[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt        ## 测试数据
34gfjfgax       gdg3546677
sfdgfghcg       ljhg9875gf
wr346dxzc       mbkbczxdwa
[root@PC1 test01]# awk '{OFS = "\t"; a = substr($1, 0, 3); print a, $0}' a.txt   ## 截取第一列的前三个字符
34g     34gfjfgax       gdg3546677
sfd     sfdgfghcg       ljhg9875gf
wr3     wr346dxzc       mbkbczxdwa

 

002、

[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt
34gfjfgax       gdg3546677
sfdgfghcg       ljhg9875gf
wr346dxzc       mbkbczxdwa
[root@PC1 test01]# awk '{OFS = "\t"; a = substr($1, 2, 3); print a, $0}' a.txt   ## 从第二个字符开始,向后截取三个字符
4gf     34gfjfgax       gdg3546677
fdg     sfdgfghcg       ljhg9875gf
r34     wr346dxzc       mbkbczxdwa

 

003、

[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt
34gfjfgax       gdg3546677
sfdgfghcg       ljhg9875gf
wr346dxzc       mbkbczxdwa
[root@PC1 test01]# awk '{OFS = "\t"; a = substr($1, 3); print a, $0}' a.txt   ## 返回第三个字符一直到最后
gfjfgax 34gfjfgax       gdg3546677
dgfghcg sfdgfghcg       ljhg9875gf
346dxzc wr346dxzc       mbkbczxdwa

 。