从正斜杠创建目录结构
Make directory structure from forward slashes
我将 html 文档从 windows 机器拉到我的 linux 盒子上,问题是两者之间的目录结构没有维护。这是 linux
中的样子
MyReport\partition_and_timing.files\img0.jpg
MyReport\partition_and_timing.html
MyReport\protocols_cards.html
MyReport\report_title.files\img0.jpg
MyReport\report_title.html
MyReport\scripts.html
我正在考虑使用 bash 脚本将“\”更改为“/”,本质上是创建一个文件夹。我猜他们是这样做的标准方法,但无法弄清楚。
这就是我正在使用的东西
for file in *; do mv $file echo $file | sed 's/\/\//g' ; done
尝试mv $file ${file//\/\/}
。它将 ${file}
.
中的每个反斜杠替换为正斜杠
你必须捕获
echo $file | sed 's/\/\//g'
因为现在您要移动一个文件,一个名为 'echo' 的不存在的文件,并将(错误的)结果通过管道传递给无法处理它的 sed。
让 file
拥有您要修改的文件列表:
for f in $file; do
cp "$f" "$f".backup
sed -i 's/\/\//g' $f
done
这是一个for循环,先创建一个备份文件,然后使用sed
进行就地修改。
-i
of sed 意味着你想做就地修改,所以修改将直接应用于文件。
我将 html 文档从 windows 机器拉到我的 linux 盒子上,问题是两者之间的目录结构没有维护。这是 linux
中的样子MyReport\partition_and_timing.files\img0.jpg
MyReport\partition_and_timing.html
MyReport\protocols_cards.html
MyReport\report_title.files\img0.jpg
MyReport\report_title.html
MyReport\scripts.html
我正在考虑使用 bash 脚本将“\”更改为“/”,本质上是创建一个文件夹。我猜他们是这样做的标准方法,但无法弄清楚。
这就是我正在使用的东西
for file in *; do mv $file echo $file | sed 's/\/\//g' ; done
尝试mv $file ${file//\/\/}
。它将 ${file}
.
你必须捕获
echo $file | sed 's/\/\//g'
因为现在您要移动一个文件,一个名为 'echo' 的不存在的文件,并将(错误的)结果通过管道传递给无法处理它的 sed。
让 file
拥有您要修改的文件列表:
for f in $file; do
cp "$f" "$f".backup
sed -i 's/\/\//g' $f
done
这是一个for循环,先创建一个备份文件,然后使用sed
进行就地修改。
-i
of sed 意味着你想做就地修改,所以修改将直接应用于文件。