我有一个列表(list.txt)
E001 Apples Good stuff
E002 Pears Nicely done
E091 Grapes Bleah
我想使用第一列创建目录,所以我尝试了
#!/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
这不仅体积庞大,而且不起作用 - 即使 cat list.txt | cut -f1 | awk 'NR==1 {print}'
给我我想要的单个目录的名称(即 E001)
理想情况下,我希望获得在脚本运行的文件夹中创建的一堆空文件夹(听起来对吗?)使用 list.txt
中每一行的第一列命名.
最佳答案
一个简单的循环就足够了:
while read dirname others; do
mkdir "$dirname"
done < list.txt
这一次从文件中读取一行,将 dirname
的值设置为第一个字段,将 others
的值设置为每一行的剩余部分,然后运行 mkdir
使用给定的目录名称。
关于bash - 从列表创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32879347/