
我有一個在名為的文件中看起來像這樣的清單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 約翰‧多伊 mkdir 簡·多伊 mkdir 亞當史密斯 mkdir 莎拉布朗 mkdir 蘇西·約翰遜
命令mkdir
使用檔案中的名稱建立一個新資料夾names.txt
。