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

如何在Mule 4中提取文本文件指定位置含BR的行并输出

Mule 4 文本文件处理:提取指定行并保留头部

实现步骤

1. 读取文本文件

使用File Connector的Read操作读取目标文本文件,关键配置:

  • File Path:指定待处理文件的路径
  • Encoding:匹配文件编码(如UTF-8)
  • Return Type:选择String,确保读取完整文本内容

2. 文本拆分与过滤(DataWeave核心处理)

在Transform Message组件中用DataWeave 2.0完成逻辑处理,代码如下:

%dw 2.0
output application/text
---
// 按换行符拆分文本为行数组,兼容Windows/Unix换行格式
var lines = payload splitBy /\r?\n/
// 保留前2行作为头部
var headerLines = lines[0 to 1]
// 过滤其余行:仅保留第3、4个字符(0-based索引2-4)为"BR"的行
var filteredDataLines = lines[2 to -1] filter ((line) -> 
    line as String length >= 4 
    and (line substring(2, 4) == "BR")
)
// 合并头部与过滤后的行,还原文本格式
(headerLines ++ filteredDataLines) joinBy '\n'

3. 输出处理结果

将处理后的纯文本发送至目标系统,可根据需求选用对应连接器(如File、HTTP等),确保输出格式为纯文本。

逻辑说明

  • 换行兼容:用正则/\r?\n/拆分,避免因系统差异导致的换行符问题
  • 头部保留:直接提取数组前2行,对应输入文件的标题行和分隔行
  • 行过滤:先判断行长度避免索引越界,再通过substring(2,4)定位第3、4个字符(1-based),匹配"BR"后保留该行
  • 格式还原:用joinBy('\n')将数组重新组合为带换行的纯文本

验证结果

代入输入文本后,将输出你期望的内容:

1BoraBora Island                                                                                                                                                          
0000000000000000000000
1 BR  67854 JAIHIND  789                                                                                                 000Y247          9898983
2 BR  CR9   BoraBora 123                                                QK                                          J12Y64              00010520

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:30:50