如何在Abinitio GDE中编写表达式提取指定字段前两位字符
在Abinitio GDE中提取竖线分隔字段前两个字符的实现方法
输入数据说明
输入文件为竖线|分隔的文本,每行包含三个字段,示例数据:
2000560|Bibek|28
3490679|kjdsk|56
1775679|Samrat|45
实现步骤
1. 配置输入组件
使用Abinitio的File Input组件读取目标Unix文件:
- 设置字段分隔符为
| - 定义三个输入字段,类型均为
string,比如命名为id,full_name,age
2. 编写字段提取表达式
添加Transform(或Reformat)组件,在转换逻辑中使用Abinitio内置的substring函数提取full_name字段的前两个字符:
substring(full_name, 1, 2)
注:Abinitio的字符串索引从1开始,
substring参数依次为:目标字符串、起始位置、截取长度。
如果需要将结果作为独立字段输出,可在组件的输出字段定义中新增字段(比如first_two_chars),并将上述表达式赋值给该字段。
3. 配置输出组件
使用File Output组件将处理后的结果写入输出文件,可设置每行仅输出提取的前两个字符,最终得到:
Bi
kj
Sa
特殊情况处理(可选)
如果存在full_name字段长度不足2的情况,substring会返回字段的全部现有字符。若需要统一输出两个字符(不足时补空格),可结合pad函数:
pad(substring(full_name, 1, 2), 2, " ", "right")
内容的提问来源于stack exchange,提问作者Samrat Saha
相关产品推荐
相关产品推荐

