将linux服务器中文件操作的非法字符替换成字符串

Replace illegal characters for file operations in linux server in a character string

我有一个字符串 name 将生成一个文件名 paste(name, ".pdf", sep="")

此文件将在完成后移动到另一个目录。

我想主动避免 name 中可能导致文件操作错误的任何字符,如空格 \[],其他字符如 !"§$%&/()= 和任何其他人替换它们。德语中的特殊字符,如 öäüß 应该不会造成问题,应该被允许。

由于名称是用户输入的,因此我无法事先知道用户可能会输入什么字符,这会导致问题。

哪些字符会给我错误?

是否有任何解决方案或正则表达式可以在不明确 运行 每个带有 sub 的字符的情况下执行此操作,例如 df$name<-sub(" ", "_", df$name)

R 包 {fs} 提供函数 fs::path_sanitize()。你可能想检查一下。 https://fs.r-lib.org/reference/path_sanitize.html