命名文件或文件夹时删除字符

4 bash text-processing

我有一个多行的文本文件。在每一行中,我都有以下格式的日期:

12/2/2015
15/9/2013
08/3/2011
02/5/2005
.
.
.
Run Code Online (Sandbox Code Playgroud)

我想使用一个简单的for循环为此文本文件中的每一行创建一个文件夹,如下所示:

#!/bin/bash -f
for f in $(cat ./file.txt ); do 
mkdir ${f}
done
Run Code Online (Sandbox Code Playgroud)

这段代码不起作用,因为我有/日期格式的字符。如何创建文件夹并同时从文件夹名称中删除此字符?所以输出文件夹名称将是这样的:

1222015
1592013
0832011
0252005
.
.
.
Run Code Online (Sandbox Code Playgroud)

cas*_*sey 8

您可以使用这样的命令:

sed -e 's/\///g' < file.txt | xargs mkdir
Run Code Online (Sandbox Code Playgroud)

sed命令将从 file.txt 中去除换行符,并且管道xargsmkdir针对文件中的每一行运行。

使用tr而不是的等效命令(由 don_crissti 建议)sed是:

tr -d / < file.txt | xargs mkdir
Run Code Online (Sandbox Code Playgroud)