如何用Perl单行命令移除文件首行列名两侧的双引号
Perl单行命令移除首行列名的双引号
需求说明
仅移除文件首行中所有列名两侧的双引号,后续行的带双引号数据保持原样。
输入示例
"FNAME","LNAME" "A1B1","XYZ" "A1B2","X12"
期望输出示例
FNAME,LNAME "A1B1","XYZ" "A1B2","X12"
解决方案
使用以下Perl单行命令处理文件:
perl -pe 's/"([^"]+)"/$1/g if $. == 1' input.csv > output.csv
命令解释
-p:逐行读取输入文件,处理完成后自动打印每一行-e:指定要执行的Perl代码片段$.:Perl内置变量,代表当前处理的行号,$. == 1确保仅对第一行执行替换操作s/"([^"]+)"/$1/g:全局匹配被双引号包裹的内容("([^"]+)"匹配任意非引号字符组成的内容并捕获),将其替换为捕获到的文本(即去掉两侧双引号)
内容的提问来源于stack exchange,提问作者Srinivasa
相关产品推荐
相关产品推荐

