我在一个名为的文件中有一个如下所示的列表names.txt
:
JOHN DOE
JANE DOE
ADAM SMITH
SARAH BROWN
SUSIE JOHNSON
是否有一个脚本可以在终端中运行,以便根据此列表中的每一行创建文件夹?
答案1
有一种简单的方法可以对文本文件的每一行运行命令,并且不需要脚本,因为对于像 这样的单个命令来说,脚本会显得过于繁琐mkdir
。使用xargs
以下命令:
xargs -tI % mkdir % < names.txt
选项-I
告诉xargs
对 中的每一行运行一个命令STDIN
。在本例中,STDIN 来自使用 读取names.txt
文件< names.txt
。%
字符是一个替换字符串,它xargs
使用 来作为文件中一行的占位符。这意味着命令中xargs
看到的所有 都被文件中的一行替换。%
%
该-t
选项会xargs
在执行每个命令之前打印该命令。这不是必需的,但对于更复杂的问题很有用。
当xargs
使用示例文件运行时,输出如下所示:
mkdir JOHN DOE mkdir JANE DOE mkdir ADAM SMITH mkdir SARAH BROWN mkdir SUSIE JOHNSON
这些mkdir
命令会用文件中的名称创建一个新文件夹names.txt
。