Here are a few solutions:
sub("^(.*)[.].*", "\1", "abc.com.foo.bar") # 1
## [1] "abc.com.foo"
library(tools)
file_path_sans_ext("abc.com.foo.bar") # 3
## [1] "abc.com.foo"
ADDED. Regarding your comment asking to remove leading periods, simplest is to just feed this into any of the above where x
is the input string:
sub("^[.]*", "", x)
To do any of them in one line:
x <- c("abc.com.foo.bar", ".abc.com.foo.bar", ".vimrc")
sub("^[.]*(.*)[.]?.*$", "\1", x) # 1a
## [1] "abc.com.foo.bar" "abc.com.foo.bar" "vimrc"
file_path_sans_ext(sub("^[.]*", "", x))
## [1] "abc.com.foo" "abc.com.foo" "vimrc"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…