# 若 test.txt 內容如下
1234567 12345678 12345678901234
sdfas   sdfd     sadf asdfasdff
                 asgsdfas df
asdfsd  fsgsd    sdfasgsd
asdfsd  fsgsd    sdfasgsd   df
                 sdfgasd fsf sa
                  dfsdffdfa

# 其中有三個欄，最大長度分別是 8 9 14
# 有斷一次和斷二次的情況
# 最後有一個全空白的列會比較好

library(data.table)
library(magrittr)

d <- 
  read.fwf(
    "test.txt", 
    c(8, 9, 14),           # 指定各欄最大寬度
    header = F,          
    strip.white = T,     # 清除多餘空白
    stringsAsFactors = F # 不要字串轉因子 
  ) %>%
  as.data.table()

# 若 V1 和 V2 同時為空字串則視為斷列情況並把 V3 往上一列加到尾巴
# 整個過程是由最末列做到最前列，方便處理超過一個斷列的情況
for (i in rev(which(d[, "V1"] == "" & d[, "V2"] == ""))) {
    set(d, i-1L, "V3", paste0(d[i-1L, ]$`V3`, d[i, ]$`V3`))
}

d[V1 != "" & V2 != ""] # 為所求
#         V1       V2                                   V3
# 1: 1234567 12345678                       12345678901234
# 2:   sdfas     sdfd            sadf asdfasdffasgsdfas df
# 3:  asdfsd    fsgsd                             sdfasgsd
# 4:  asdfsd    fsgsd sdfasgsd   dfsdfgasd fsf sadfsdffdfa