我(仍)不是shell向导,但我正在尝试从文件名列表中创建目录和文件。
我们以此源文件(source.txt
)为例:
README.md
foo/index.html
foo/bar/README.md
foo/bar/index.html
foo/baz/README.md
我将使用此命令删除空行并修剪无用的空格:
$ more source.txt | sed '/^$/d;s/^ *//;s/ *$//'
它会给我这个清单:
README.md
foo/index.html
foo/bar/README.md
foo/bar/index.html
foo/baz/README.md
现在我正在尝试遍历每一行并创建相关文件(它不存在),并使用它的父目录。
我怎么能这样做?
理想情况下,我会将此脚本放在别名中以快速使用它。
答案 0 :(得分:1)
与往常一样,发布问题会让我走到问题的最后......
我在dirname
循环中使用basename
和for .. in
找到了令人满意的解决方案:
for i in `cat source.txt | sed '/^$/d;s/^ *//;s/ *$//'`;
do mkdir -p `dirname $i`;
touch `echo $(dirname $i)$(echo "/")$(basename $i)`;
done
这个单行命令将: