Subory pomenujem takto:
file_map.txtSCR01 login
SCR02 main page
SCR03 left menu
SCR04 1. content
file_log.txtSCR01 14:41
SCR02 14:42
SCR03 14:43
SCR02 14:44
SCR04 14:45
SCR02 14:46
Takto vyzera awk skript:
join_map_log.awk# Run:
# awk -f join_map_log.awk file_map.txt file_log.txt
BEGIN {
FS = " "
lines_found = 0
}
{
if (FILENAME == ARGV[1]) {
# mark line from $2 to $NF from file_map.txt in array
line_array[$1] = substr($0, length($1)+1, length($0)-length($1)+1)
}
if (FILENAME == ARGV[2]) {
# print adequate lines from file_log.txt
if (line_array[$1]) {
# concat and print
print $0 line_array[$1]
lines_found ++
}
}
}
END {
printf "\nThere were %d lines found and printed.\n", lines_found
}
Po spusteni dostaneme vysledok:
$ awk -f join_map_log.awk file_map.txt file_log.txt
SCR01 14:41 login
SCR02 14:42 main page
SCR03 14:43 left menu
SCR02 14:44 main page
SCR04 14:45 1. content
SCR02 14:46 main page
There were 6 lines found and printed.