使用 cp 将.html文件转换为.txt |错误:CP:无法统计"/*.html":没有这样的文件或目录


#!/bin/bash
# Make a txt copy of any html files
for value in $1/*.html
do
if [[ $value == *.html ]]; then
cp $value $1/$( basename -s .html $value ).txt
fi
done

错误: cp:无法统计"/.html":没有这样的文件或目录 cp:无法访问"index.html/.txt":不是目录

以下语句中的$1是第一个命令行参数。

$1/*.html

在您的代码中,它需要包含 HTML 文件的父目录名称。假设您的父目录是/home/user/my_html_files,那么如果您将其作为命令行参数传递,那么将考虑此目录中的所有 HTML 文件。

# ./convert_html_to_txt.sh /home/user/my_html_files

以上将导致代码/home/user/my_html_files/*.html。如果您的 HTML 文件位于当前目录中,只需将.作为命令行参数传递(.表示当前目录(

首先,您需要将目录名称(具有完整路径(传递给脚本,其次,因为您只循环访问目录中的HTML文件,因此您无需再次检查它,而是可以在其副本上放置检查条件,无论它是否成功复制.txt。我相信您很可能正在寻找这种解决方案。

cat script.ksh
for value in $1/*.html
do
temp=${value%.*}
echo cp "$value" "$1/$temp.txt"
if [[ $? -eq 0 ]]
then
echo "File named $value copied successfully to "$value" "$1/$temp.txt"
else
echo "Please check file named $value NOT copied to "$value" "$1/$temp.txt"
fi
done

然后按script.ksh "/directory_name/with_full_path"运行script.ksh。此外,我已经echo放在命令之前cp所以一旦你看到命令通过上面的脚本打印正确,你可以删除它。

最新更新