我有一个逗号分隔的文件"myfile.csv",其中第5列是日期/时间戳。(mm/dd/yyyy hh:mm)。我需要列出所有包含重复日期的行(有很多)。
我正在使用通过Cygwin为WinXP的bash shell。
我正在使用通过Cygwin为WinXP的bash shell。
$ cut -d, -f 5 myfile.csv | sort | uniq -d
正确返回重复日期列表
01/01/2005 00:22
01/01/2005 00:37
[snip]
02/29/2009 23:54
但是我不知道如何将这个内容传递给grep以获取所有行。显然,我不能直接使用xargs
,因为输出包含空格。我认为可以使用uniq -z -d
,但由于某种原因,组合这些标志会导致uniq返回空值。
因此,鉴于这一点:
$ cut -d, -f 5 myfile.csv | sort | uniq -d -z | xargs -0 -I {} grep '{}' myfile.csv
无法工作...我该怎么办?
我知道我可以使用perl
或其他脚本语言来完成这个任务...但是我的固执天性坚持认为我应该能够使用标准命令行工具如sort
、uniq
、find
、grep
、cut
等在bash
中完成它。
请教各位bash大师,我该如何使用典型的cli工具获取所需的行列表?