我有像这样的.csv文件
1000|79|2017-01-27 16:53:00|dmp
1000|91|2017-01-27 16:53:00|cmk
1000|93|2017-01-27 16:53:00|rtf
1001|79|2017-01-27 16:58:22|dmp
1001|91|2017-01-27 16:58:22|elc
1001|93|2017-01-27 16:58:22|rtf
1002|79|2017-01-27 16:58:45|cmk
1002|91|2017-01-27 16:58:45|cmk
1003|79|2017-01-27 16:59:11|bdd
1004|79|2017-02-01 11:41:04|dmp
我需要像这样设置数据
1000|79|2017-01-27 16:53:00|dmp
1001|79|2017-01-27 16:58:22|dmp
1002|79|2017-01-27 16:58:45|cmk
1003|79|2017-01-27 16:59:11|bdd
1004|79|2017-02-01 11:41:04|dmp
如何通过使用shell脚本来实现这一点? 附:
我试图用以下命令做到这一点,但我不能用它来敲响它虽然它给出了唯一的值..
awk -F"|" '{print $1}' myfile.csv|sort|uniq
谢谢
答案 0 :(得分:2)
awk -F"|" '{if (!a[$1]) {a[$1]=1;print $0;}}' v1
1000|79|2017-01-27 16:53:00|dmp
1001|79|2017-01-27 16:58:22|dmp
1002|79|2017-01-27 16:58:45|cmk
1003|79|2017-01-27 16:59:11|bdd
1004|79|2017-02-01 11:41:04|dmp
我认为你需要uniq第一列,对吗?
答案 1 :(得分:1)
sort --stable --field-separator='|' --key=1,1 -u your_file.csv
请注意,--stable
和-u
一起确保,如果多行具有相同的密钥,则第一行将被采用。