在linux下解析文件
我试图根据推特数据计算一些新闻文章的受欢迎程度。然而,在检索tweet时,我忘记了转义以无法使用的文件结尾的字符 以下是文件中的一行:在linux下解析文件,linux,bash,parsing,Linux,Bash,Parsing,我试图根据推特数据计算一些新闻文章的受欢迎程度。然而,在检索tweet时,我忘记了转义以无法使用的文件结尾的字符 以下是文件中的一行: 1369283975$,$337427565662830592$,$0$,$username$,$Average U.S. 401(k) balance tops $80$,$000$,$ up 75 pct since 2009 http://t.co/etHHMUFpoo #news$,$http://www.reuters.com/article/2013
1369283975$,$337427565662830592$,$0$,$username$,$Average U.S. 401(k) balance tops $80$,$000$,$ up 75 pct since 2009 http://t.co/etHHMUFpoo #news$,$http://www.reuters.com/article/2013/05/23/funds-fidelity-401k-idUSL2N0E31ZC20130523?feedType=RSS&feedName=marketsNews
“$,$”模式不仅作为字段分隔符出现,而且出现在tweet中,我想从其中删除它。
正确的一行应该是:
1369283975$,$337427565662830592$,$0$,$username$,$Average U.S. 401(k) balance tops $80000 up 75 pct since 2009 http://t.co/etHHMUFpoo #news$,$http://www.reuters.com/article/2013/05/23/funds-fidelity-401k-idUSL2N0E31ZC20130523?feedType=RSS&feedName=marketsNews
我试着使用cut和sed,但是我没有得到我想要的结果。解决这个问题的好策略是什么?如果我们可以假设在时间、id、转发、用户名和链接字段中没有额外的分隔符,那么您可以从中间部分删除所有的
$,$
,例如:
perl -ne 'chomp; @a=split(/\$,\$/); $_ = join("", @a[4..($#a-1)]); print join("\$,\$", @a[0..3], $_, $a[$#a]), "\n"' < data.txt
(应该输出一行,带“6”)如果我们可以假设在时间、id、转发、用户名和链接字段中没有额外的分隔符,那么您可以从中间部分删除所有的
$,$
,例如:
perl -ne 'chomp; @a=split(/\$,\$/); $_ = join("", @a[4..($#a-1)]); print join("\$,\$", @a[0..3], $_, $a[$#a]), "\n"' < data.txt
(应该输出一行,带“6”)我看到的唯一区别是从编号
$80$,$000$,$
到$80000
。是吗?是的,我想要$,$,$,$,$,$,$,tweed\u text$,$link问题是你的文本$80000
是美元,这违反了规则。最好使用另一个字段分隔符。我看到的唯一区别是从编号$80$,$000$,$
到$80000
。是吗?是的,我想要$,$,$,$,$,$,$,tweed\u text$,$link问题是你的文本$80000
是美元,这违反了规则。最好使用另一个字段分隔符。这非常有效!在测试代码之后,每行出现6次“$,$”。谢谢你,这个很好用!在测试代码之后,每行出现6次“$,$”。非常感谢。