首页 > 解决方案 > Perl:如何从 csv 中删除分号

问题描述

我有一个文件,在其中一个单元格的输出 CSV 中,它用分号分隔数字

|页码|

|405;349;568;679|

如何删除分号并将这些数字分隔到不同的单元格中

|405|349|568|678|

|405| 标题将是页码,其他数字将是彼此水平的单元格

标签: perl

解决方案


替换运算符是s///。您的具体示例可以由以下一个班轮处理:

echo "|405;349;568;679|" | perl -ne 's/;/|/g; print'

隐式地,该-n选项循环通过管道输入的所有行,或随后列出的输入文件中的所有行(即以下也适用:)perl -ne 's/;/|/g; print' <(echo "|405;349;568;679|")。每行都分配给变量$_s/;/|/g是 的简写$_ =~ s/;/|/g,它替换所有出现的;with |,并且print没有参数与print $_.

如果您想编辑文件,使用sed同一个开关可能会更直接。g


推荐阅读