我们的工作步骤之一是将 MS Excel 工作表保存为 CSV,然后在将其导入服务器系统之前使用 UltraEdit 将 CSV 转换为 UTF-8。
问题是,在转换为 UTF-8 后,文件总是在文件开头包含 3 个无意义的字符:
ENTITY_ID;FIELD2;FIELD3,FIELD4;(etc.)
value1;value2;value3;value4;(etc)。
观察:
如您所见,有 3 个字符是噪音,导致服务器拒绝 CSV 导入,因为第一列未命名为“ENTITY_ID”。字符总是相同的。
转换后这些字符不会显示,但是当我们再次在 UltraEdit 中关闭并重新打开文件时,我们确实看到了这些字符。
这些字符仅在 UltraEdit 中可见。Windows Notepad 或 Notepad++ 不显示它们。
使用 Notepad++ 将 CSV 转换为 UTF-8 会产生完全相同的输出:文件开头具有相同的 3 个奇数字符。唯一的区别是 Notepad++ 不显示这些字符,即使在关闭并重新打开文件后也是如此。
解决方法:
我们在 UltraEdit 中重新打开文件,删除噪音,然后服务器接受 CSV 导入。
这一步需要通过修复实际问题来消除。
问题:我们如何避免这三个字符?
我有一行由逗号分隔的 3 个长数字。我想要做的是删除中间的数字,只留下用逗号分隔的第一个数字和最后一个数字。
目前:
123456789123,723456789123456,834567885544334
123456789125,723456789123457,834567885544333
123456789126,723456789123458,834567885544337
Run Code Online (Sandbox Code Playgroud)
想要的结果:
123456789123,834567885544334
123456789125,834567885544333
123456789126,834567885544337
Run Code Online (Sandbox Code Playgroud)
我尝试这样做,但它不适用于这些正则表达式:
%[0-9]+,[0-9]+,[0-9]+
^1,^2
哪个正则表达式实际上是我想要实现的?
注意 - 我目前正在使用在 Windows 7 上运行的名为 Ultraedit 的应用程序,如果您推荐一个更好的 Windows 文本编辑应用程序可以解决我的问题,请告诉我。
ultraedit ×3
utf-8 ×2
conversion ×1
notepad++ ×1
regex ×1
shell-script ×1
windows ×1
windows-7 ×1