如何用Perl正则表达式去除CSV文件中每个字段的前后空格?
用Perl正则清理CSV字段前后空格
直接用Perl一行命令就能搞定你的需求:
perl -pe 's/\s*;\s*/;/g; s/^\s+|\s+$//g' input.csv > output.csv
命令解释
-p:逐行读取输入文件,处理完每一行自动打印到输出-e:允许直接在命令行指定Perl处理代码,无需单独写脚本文件s/\s*;\s*/;/g:全局替换所有分号前后的任意空白字符(包括空格、制表符)为单个分号,精准清理分隔符周围的冗余空格s/^\s+|\s+$//g:移除每行开头和结尾的所有空白字符,避免行首行尾残留多余空格
测试验证
拿你提供的原始CSV内容测试:
原始输入:
Id ; FirstName ; LastName ; email 123; Marc ; TOTO ; marc@toto.com
运行命令后得到的输出:
处理后结果:
Id;FirstName;LastName;email 123;Marc;TOTO;marc@toto.com
注意事项
如果你的CSV字段内部包含合法空格(比如"Mary Ann"这种带引号的字段),这个方法完全兼容——我们只处理分号前后的空格,不会改动字段内部的内容。
内容的提问来源于stack exchange,提问作者Marc Elisabeth
相关产品推荐
相关产品推荐

