Grepping CSV文件并输出到另一个文件

时间:2017-10-30 19:30:35

标签: csv terminal grep

我有一个非常大的CSV文件。文件中的1行示例为:

1880,Mary,F,7065

我希望能够通过获取符合特定条件的所有条目来过滤我的文件,并将它们放在单独的文件中。例如,我希望能够做到这样的事情:

取第三个条目所在的所有行" Mary"并将这些行复制到一个新行。

我是怎么想用grep做这件事的?

1 个答案:

答案 0 :(得分:0)

首先是一个更好的测试文件,带有正线和负线(对于第三个​​条目是“Mary”):

$ cat file
1880,Mary,F,7065
1880,Mary,Mary,7065

第三个​​条目为“Mary”的所有行使用grep

$ grep "^\([^,]*,\)\{2\}Mary" file
1880,Mary,Mary,7065

如果你想要更多规则,你可以使用OR(|),例如在行上获得前一个OR F

$ grep "\(^\([^,]*,\)\{2\}Mary\|F\)" file

我会在grep上使用awk,但是:

$ awk -F, '$3=="Mary" || /F/' file