У меня есть два файла, и мне нужно отсортировать и объединить строки на основе столбца времени:
Файл А:
"2014-02-26 16:03:04" "Login Success|isNoSession=false" id=csr,ou=user,dc=openam,dc=forgerock,dc=org 7efb2f0e035a0e3d01 10.17.174.30 INFO dc=openam,dc=forgerock,dc=org "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org" AUTHENTICATION-100 DataStore "Not Available" 10.17.174.30
Файл Б:
"2014-02-26 16:02:27" "Login Failed" dennis "Not Available" 10.17.174.30 INFO dc=openam,dc=forgerock,dc=org "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org" AUTHENTICATION-200 DataStore "Not Available" 10.17.174.30
"2014-02-26 16:02:37" "Login Failed" purva "Not Available" 10.17.174.30 INFO dc=openam,dc=forgerock,dc=org "cn=dsameuser,ou=DSAME Users,dc=openam,dc=forgerock,dc=org" AUTHENTICATION-200 DataStore "Not Available" 10.17.174.30
Мне нужно объединить файлы (довольно стандартно), но я должен вставить строки в окончательный файл на основе времени, указанного в столбце 1. У меня есть несколько других элементов, которые нужно изменить для каждой строки, но я уверен, что смогу это понять. Сортировка по столбцу времени поставила меня в тупик.
Так что в этом случае у меня будет файл со строкой из файла A в конце.
Другие детали.
Просто чтобы освежиться в gawk, я работал над разбором первого файла. Вот что у меня есть до сих пор:
#!/bin/awk -f
BEGIN {
FS="\t";
}
{
# if we have more than 12 fields for the current row, proceed
if ( NF > 12 )
{
# start looking for the user name
n = split( $3, var1, ",");
if (n > 4)
{
n2 = split (var1[1], var2, "=");
if (n2 >= 2)
{
# Ignore any line where we do not have "id=xxxxx,..."
if (var2[1] == "id")
{
print $1, "N/A", "N/A", $12, $5, $5, var2[2]
}
}
}
}
}
END {
print "Total Number of records=" NR
}
Мне, вероятно, нужно переместить это в функцию, чтобы упростить ее, поскольку я собираюсь обрабатывать два файла одновременно.
sort
, получите ли вы нужный результат? Я отмечаю, что формат даты/времени таков, что его можно отсортировать по алфавиту, чтобы даты и время были в хронологическом порядке. - person Simon   schedule 27.02.2014