使用多个单词从文件名创建目录

时间:2013-03-11 20:29:25

标签: linux bash directory filenames

我在Linux的一个目录中有几个文件,如下所示:

John Smith-data.txt
Peter Walker-address.txt
...

我想要一个读取这些文件名的脚本,并为文件名中的每个名称创建一个目录,即

John Smith
Peter Walker

如果我这样做

for name in `ls | awk -F - '{print $1}'`; do mkdir $name; done

创建以下目录

John
Smith
Peter
Walker

for name in `ls | awk -F - '{print $1}'`; do mkdir "$name"; done

我得到了相同的结果

然后,做

for name in "`ls | awk -F - '{print $1}'"`; do mkdir "$name"; done

只有一个名为:

的目录
John Smith Peter Walker

最后,如果我进入

for name in "`ls | awk -F - '{print $1}'"`; do mkdir $name; done

我再次

John
Smith
Peter
Walker

有什么想法吗?如何使用引号""

提前致谢

1 个答案:

答案 0 :(得分:4)

目前还不完全清楚你想要什么,但也许:

for i in *.txt; do mkdir "${i%-*}"; done