The R Code below worked. Might be a bit cumbersome but it did the trick:
library(tidyverse)
# reading files in
con <- gzcon(url(paste("ftp://ftp.fu-berlin.de/pub/misc/movies/database/frozendata/",
"biographies.list.gz", sep="")))
txt <- readLines(con)
biographies <- read.csv(textConnection(txt), quote = "", skip = 1, header = FALSE)
# Extracting lines with name (NM) and birthdate (DB)
test_2 <- biographies %>% rownames_to_column("biographies") %>% filter(stringr::str_detect(V1, 'NM:|DB:') )
# Create column to deliniate if its a name or a bday
test_2$starts_with <- substr(test_2$V1, 0, 2)
# Create a grouping variable.
test_2$group = cumsum(test_2$starts_with == "NM")
# Dataframe of just names
test_3 <- subset(test_2, starts_with == "NM")
# Dataframe of just birthdates
test_4 <- subset(test_2, starts_with == "DB")
# Merging them together by group
birthday <- merge(x=test_3, y=test_4, by.x="group", by.y="group", all.x = TRUE)
rm(test, test_2, test_3, test_4)