【发布时间】:2012-12-12 22:55:51
【问题描述】:
我有一个 csv 文件,每行有 4 个属性,用逗号分隔。我试图想出一个sed 命令来只保留每行的第二个属性。关于如何做到这一点的任何想法?
【问题讨论】:
我有一个 csv 文件,每行有 4 个属性,用逗号分隔。我试图想出一个sed 命令来只保留每行的第二个属性。关于如何做到这一点的任何想法?
【问题讨论】:
cut 会更好:
cut -d "," -f 2 file.txt
如果您想删除重复项,并且不介意条目的顺序,只需执行以下操作:
cut -d "," -f 2 file.txt | sort -u
要扩展到 attrs 1 和 to,只需使用:
cut -d "," -f 1,2 file.txt | sort -u
【讨论】:
,怎么办? 1,10,21\n 2,"11,45",22\n 3,12,23\n 4,13,24
,,他可能不会将其作为分隔符,对吧?
,,则整个字段用双引号括起来。请参阅我之前评论中给出的文件内容。 (可悲的是,所以 cmets 吃掉了换行符......)
你不需要 sed 。最快的是cut:
cut -d, -f2 file
但是,如果你想要 sed ,你可以这样做:
sed '/[^,]*,\([^,]*\).*/ sxx\1x' file
【讨论】: