我有一個文本檔案,我需要在腳本中使用for回圈創建檔案夾樹。
這是我需要使用的文本檔案。
動物.txt
Animals
Animals/Cats
Animals/Cats/Bengal
Animals/Cats/Sphynx
Animals/Dogs
Animals/Dogs/Poodle
Animals/Dogs/Golden Retriever
這是我在腳本中寫的。
for i in $(cat Animals.txt)
do
mkdir "$i"
done
我的問題是當回圈進入最后一行時,它會創建兩個檔案夾;一種是動物/狗/金色,另一種是獵犬。我應該在腳本中寫什么讓它知道“Golden Retriever”應該是一個檔案夾?
uj5u.com熱心網友回復:
瀏覽了一下之后,我發現了這個。我將此添加到腳本的開頭,現在不考慮空間。
IFS=$'\n'
uj5u.com熱心網友回復:
對 OP 當前代碼的幾個小改動:
while read -r newdir # read entire line into variable "newdir"
do
mkdir -p "${newdir}"
done < Animals.txt
這會產生:
$ find Animals -type d
Animals
Animals/Cats
Animals/Cats/Bengal
Animals/Cats/Sphynx
Animals/Dogs
Animals/Dogs/Golden Retriever
Animals/Dogs/Poodle
uj5u.com熱心網友回復:
你會很簡單地做到這一點xargs:
xargs -L 50 -a Animals.txt mkdir -p
xargs一次最多需要 50 行,并將每一行作為引數提供給 command mkdir -p。那將是非常有效和直接的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474222.html
上一篇:使用ssh執行多個命令,包括評估遠程機器上的環境變數
下一篇:將tar檔案提取到單獨的檔案夾中
