我有一个非常非常大的CSV文件。文件中一行的示例如下:
1880,Mary,F,7065我希望能够通过获取满足特定条件的所有条目并将它们放在单独的文件中来过滤我的文件。例如,我希望能够这样做:
取第三个条目为"Mary“的所有行,并将这些行复制到新行中。
你知道我该如何使用grep来做这件事吗?
发布于 2017-10-31 04:33:31
首先,更好的测试文件包含正行和负行(第三个条目是"Mary"):
$ cat file
1880,Mary,F,7065
1880,Mary,Mary,7065第三个条目是使用grep的"Mary“的所有行
$ grep "^\([^,]*,\)\{2\}Mary" file
1880,Mary,Mary,7065如果你想要更多的规则,你可以使用OR (|),例如,在行中获取前面的OR F:
$ grep "\(^\([^,]*,\)\{2\}Mary\|F\)" file不过,我会使用awk而不是grep:
$ awk -F, '$3=="Mary" || /F/' filehttps://stackoverflow.com/questions/47022886
复制相似问题