使用 awk 和 mkdir 创建带有空格的目录

use*_*362 2 bash awk

我正在编写一个 bash 脚本,通过使用 awk 的输出来创建名称中包含空格的文件夹。

getAuthors() {
    echo "$1" | awk -F ', |, and |and ' '{ for (i =1; i<=NF; i++) system("mkdir "$i" ") }'
}
Run Code Online (Sandbox Code Playgroud)

该函数将接受一个类似于“Sokratis Katsikas 和 Isaac Agudo (eds.)”的字符串。我正在从 pdf 中获取所有作者,并且必须根据我为 awk 字段分隔符创建的正则表达式来拆分它们。但是,当我尝试调用 mkdir 为每个单独的作者创建文件夹时,它会尝试为每个单独的单词创建一个目录。例如。对于我使用的示例字符串,它会将 Sokratis Katsikas 与 Isaac Agudo (编辑)分开,但 mkdir 将尝试为 Sokratis、Katsika、Isaac 和 Agudo 创建单独的文件夹。我该如何做到这一点,以便对 mkdir 的调用保留空格,而不是尝试为每个单词创建文件夹?

anu*_*ava 5

让你的system函数带有额外的引号:

system("mkdir \"" $i "\"")
Run Code Online (Sandbox Code Playgroud)