You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用awk提取各单词最后一个字符拼接为字符串

问题解答

1. 未知单词长度时取最后一个字符的实现方法

awk内置了length()函数可以动态获取任意字符串的长度,配合substr()函数就能精准取到最后一个字符,语法格式为:
substr(目标字符串, length(目标字符串), 1)
这里第三个参数1表示只取1个字符,避免返回多余内容。

如果要按你原本的写法单独指定每一列,可以写成:

awk '{ print substr($1,length($1),1) substr($2,length($2),1) substr($3,length($3),1) substr($4,length($4),1) substr($5,length($5),1) substr($6,length($6),1) }'

2. 避免重复调用substr()的优化方案

可以通过遍历字段的方式,仅写一次substr()逻辑就完成所有列的字符提取,命令如下:

# 提取所有列的最后一个字符拼接
awk '{result=""; for(i=1;i<=NF;i++) result = result substr($i,length($i),1); print result}'

如果只需要提取前6列,把循环条件i<=NF改成i<=6即可。

命令说明:

  • NF是awk内置变量,代表当前行的总字段数,无需手动统计列数
  • 循环遍历每一列时复用同一套substr()逻辑,不管有多少列都不用额外加代码
  • 针对你给出的示例文本,执行全列提取后输出结果为GMUCHOS

内容的提问来源于stack exchange,提问作者DOS HASAN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:15:08