私はカンマで区切られたファイル "myfile.csv"を持っています。ここで、5番目の列は日付/時刻スタンプです。 (mm/dd/yyyy hh:mm)。 私は ソート|ユニーク| xargs grep ...行に空白が含まれています
$ cut -d, -f 5 myfile.csv | sort | uniq -d
が正しく重複日付のリストを返すWinXPの
ためにcygwinの経由でbashシェルを使用してい(たくさんある)重複した日付を含むすべての行をリストする必要が
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
でそれを行うことができるはずだと主張
教えて、oh bash gurus。典型的なcliツールを使用して必要な行のリストを取得するにはどうすればよいですか?
はい+1。 CSV形式が重要な場合は最後にtr '\ t' '、'を入力します。 – kmkaplan