如何在Unix命令的两列中获得具有相同值的唯一值

时间:2018-09-07 03:08:31

标签: linux shell unix

我有一个庞大的csv文件,我想知道相同的源IP地址和目标IP地址唯一值以及如何转换我的日志计时格式

"Date", "User Information", "Source IP", "Destination IP", "HTTP Status Code", "HTTP Method", "URL", "Receive byte", "Send byte"
"[31/Jul/2018:21:11:55 +0900] ","ayw23","17.248.157.14","17.248.157.14","247","CONNECT","setup.iciwh.com:443","2938","600"

那么比较awk的用法吗?

cat file.csv| awk '$6 == $7' 

我喜欢得到这样的输出

2018/7/31 21:11   17.248.157.14  setup.iciwh.com:443

1 个答案:

答案 0 :(得分:2)

要比较您的情况下的值,应使用-F的{​​{1}}选项,因为您的情况下,字段分隔符为awk而不是,

space

awk -F, '{ if( $6 == $7) print "equal" }' test.csv

此外,由于第一行是标题,并且您不希望在此行上有条件,因此可以包含条件awk -F, ' $6 == $7 { print "equal" }' test.csv

NR >1

要进行日期转换,请查看下面的链接。为此,提供了许多建议

awk command to convert date format in a file