linux 中 awk命令提取每列的前几个或者最后几个字符

 

001、

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt         ## 测试数据,三列数据
324324  aeddeef uukkiikk
sssfee  ffeeeww eeffzzdd
zzzves  ggeessa jjxxddqq
aaeekk  jjmmmzz eerraacc
[root@PC1 test]# awk '{for(i = 1; i <= NF; i++){printf("%s\t",substr($i, 1, 3))}; printf("\n")}' a.txt     ## 截取每列的前三个字符,使用awk命令的substr内置函数
324     aed     uuk
sss     ffe     eef
zzz     gge     jjx
aae     jjm     eer
[root@PC1 test]# awk '{for(i = 1; i <= NF; i++){printf("%s\t",substr($i, length($i) - 2, length($i)))}; printf("\n")}' a.txt       ## 截取每列的后三个字符
324     eef     ikk
fee     eww     zdd
ves     ssa     dqq
ekk     mzz     acc

。 

 

posted @ 2024-07-19 10:21  小鲨鱼2018  阅读(7)  评论(0编辑  收藏  举报