嘿所有,过去几年我一直在做网络开发,并没有在永远的感觉中编写任何Java或C ++。我不一定需要使用这些语言,所以我完全乐于接受建议。昨天我被一个客户端给了一个电子邮件列表,导入他们的mailchimp帐户,不幸的是,Mailchimp无法读取该文件。这是一个文本文件,但我不相信它的制表符分隔(这对我来说更容易,更容易)。
该文件的一小部分(我已更改姓氏和电子邮件地址)可在此处查看:http://sparktoignite.com/patients.txt
如果有人有关于如何将其变为Mailchimp可读格式(csv,制表符分隔的txt,excel)的建议,请告诉我。我觉得3年前我能在几分钟内做到这一点,但鉴于我在过去几年里没有触及除了RoR,PHP和jQuery以外的任何东西,我不知道在哪里开始。
谢谢!
答案 0 :(得分:2)
如果您使用的是* nix,则可以使用awk
awk -F"|" 'NR>2{$1=$1}1' OFS="," file > newfile.xls
然而,你说你知道PHP,所以为什么不坚持你知道的东西。您可以使用fgetcsv() / fputcsv()功能
$output=fopen("out.csv","w");
$handle = fopen("file", "r");
if ($handle ) {
$line=fgetcsv($handle, 2048, "|");
$line=fgetcsv($handle, 2048, "|");
while (($data = fgetcsv($handle, 2048, "|")) !== FALSE) {
$num = count($data);
fputcsv($output,$data,',');
}
fclose($handle);
fclose($output);
}
答案 1 :(得分:0)
在bash中,输出TAB分隔文件:
cat patients.txt | tr -d [[:blank:]] | tr "|" "\t" > output.txt
如果您更喜欢csv,只需将上一个"\t"
更改为","
:
cat patients.txt | tr -d [[:blank:]] | tr "|" "\t" > output.txt
虽然它弄乱了标题。如果您需要保留标题,则需要跳过前几行:
head -n2 > output.txt
tail -n+3 | tr -d [[:blank:]] | tr "|" "\t" >> output.txt