我正在尝试用","拆分文件.这是一个CSV文件.
但是,一个"列"的值包含"/"和空格.而且它似乎对该列感到不满,并且在该列之后不会打印任何内容,而是移动到下一行.
我的代码很简单:
perl -lane '@values = split(",",$F[0]); print $values[0]."\t".$values[3];' basefile.txt > newfile.txt
Run Code Online (Sandbox Code Playgroud)
basefile.txt看起来像:
"1","text","abc // 123 /// some more text // text","filename1"
"2","text","abc // 123 /// some more text // text","filename2"
"3","text","abc // 123 /// some more text // text","filename3"
Run Code Online (Sandbox Code Playgroud)
我的newfile.txt应该有一个输出:
"1","filename1"
"2","filename2"
"3","filename3"
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
"1",
"2",
"3",
Run Code Online (Sandbox Code Playgroud)
谢谢!
这不是/令人困惑的perl,它是与-a旗帜相结合的空间.尝试:
perl -lne '@values = split(",",$_); print $values[0]."\t".$values[3]' basefile
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,使用Text :: CSV_XS进行拆分.