linux - 从具有多个单词的文件名创建目录

标签 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

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

提前致谢

泽维尔

最佳答案

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

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

关于linux - 从具有多个单词的文件名创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15347988/

相关文章:

c++ - 尝试使用 C++ 在 Linux 上执行命令时被阻止

Linux串口的正确初始化顺序

bash - git "pre-push"钩子(Hook)标准输入为空

android - 从 GridView 中的特定 SDCard 文件夹加载图像

.htaccess - 使用.htaccess从不同文件夹加载文件

linux - ftp 将更改的文件推送到服务器

linux - 通过 SSH 服务器获取 SCP 到本地的权限被拒绝

php - sh : ip: command not found centos

linux - read得到的参数和$1有什么区别

java - 获取网络中某个目录的文件