从列表创建目录

Tur*_*tle 1 bash shell awk

我有一个列表(list.txt)

E001    Apples    Good stuff
E002    Pears    Nicely done
E091    Grapes    Bleah
Run Code Online (Sandbox Code Playgroud)

我想使用第一列创建目录,所以我尝试了

#!/bin/sh
for num in $(seq 1 3) #Because the list is long
do
cat list.txt | cut -f1 | awk 'NR==$num{print}' > idx.tmp
idx=$(idx.tmp)
mkdir $idx
rm idx.tmp
done
Run Code Online (Sandbox Code Playgroud)

这不仅是可以想象的笨重,它不起作用 - 即使cat list.txt | cut -f1 | awk 'NR==1 {print}'给我我想要的个人目录的名称(即E001)

理想情况下,我希望获得在脚本运行的文件夹中创建的一堆空文件夹(听起来不错吗?),使用每行的第一列命名list.txt.

che*_*ner 6

一个简单的循环就足够了:

while read dirname others; do
    mkdir "$dirname"
done < list.txt
Run Code Online (Sandbox Code Playgroud)

这一次从文件中读取一行,将 的值设置为每行dirname的第一个字段和others剩余部分,并mkdir以给定的目录名称运行。


Cyr*_*rus 5

试试这个:

cut -d " " -f 1 file | xargs echo mkdir
Run Code Online (Sandbox Code Playgroud)

要么

awk '{print $1}' file | xargs echo mkdir
Run Code Online (Sandbox Code Playgroud)

如果一切看起来都没问题echo.