ERROR: Unknown command '–f'
looks very similar to this. Do you have –f instead of -f?
That will work, but I would suggest
date {
match => [ "BIRTHDATE", "yyyyMMdd"]
target => "DOB"
remove_field => [ "BIRTHDATE" ]
}
That will leave the [BIRTHDATE] field intact if a date filter is unable to parse it. So if someone sends you dodgy data you will be able to see what is wrong with it.