如何将Bash格式txt文件转换为适配Power Pivot的逐行拆分格式
格式转换实现方案
你可以根据自己常用的运行环境选对应方案,两种方案输出的文件都直接适配Power Pivot导入要求,不会修改原始的without_Commas.txt文件。
方案1:Bash环境(Linux/macOS/Windows WSL)
直接在文件所在目录运行下面的awk单行命令即可:
awk -F ' = ' '{split($2, val_list, /[[:space:]]+/); for (i in val_list) print $1 "\t" val_list[i]}' without_Commas.txt > powerpivot_ready.txt
命令逻辑说明:
- 以
=作为分隔符拆分每行,第一部分直接拿到用户名 - 将等号后的值集合按空白字符拆分为单个值的数组
- 遍历数组,逐行输出「用户名+制表符+单个值」的格式,结果写入新文件
- 自动兼容值前后多余空格、值之间多个空格的情况,也能正确处理示例中带变音符号的非英文字符
方案2:Windows原生PowerShell环境
不需要安装额外工具,在文件所在目录打开PowerShell运行以下代码即可:
Get-Content .\without_Commas.txt | ForEach-Object { $lineParts = $_ -split ' = ', 2 $userName = $lineParts[0].Trim() $allValues = $lineParts[1].Trim() -split '\s+' foreach ($singleVal in $allValues) { "$userName`t$singleVal" } } | Out-File .\powerpivot_ready.txt -Encoding UTF8
代码逻辑说明:
- 逐行读取原始文件,按第一个出现的
=拆分行内容,避免值本身带等号的异常情况 - 自动去除首尾多余空格,将多个值按任意空白字符拆分
- 输出文件用UTF8编码,避免特殊字符乱码,分隔用制表符完全匹配给出的目标格式
处理完成后打开powerpivot_ready.txt核对即可:单值的行会原样保留用户名+值的结构,多值的行会自动拆分为多行,和需要的输出规则完全一致。
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

